由于“Table(T_Test)”没有主键,因此无法在其上执行 Create、Update 或 Delete 操作
在使用Linq To Sql查询的时候,遇到这么个问题,如图所示:
出现这个问题的原因就像途中所说的——没有主键(现在终于初步知道“为什么别人常说数据库中的逻辑主键是为了在编程中方便使用”的原因了,估计就是因为这个,呵呵,我猜的)。今天遇到这个问题就把它记录下来。
怎么解决呢?
既然它说没有主键,那么就将数据库中该表加上主键不就行了?但这只是其中一个步骤,因为Linq操作已经不是直接的操作数据库了,而是通过DataContext类来间接与数据库交互,所以即使将数据库设置了主键,还是会报图上的那个错误。
解决方案一:在.dbml这个文件中的那个表,在对数据库该表添加了主键之后,删除.dbml里面的这个(这里是T_Test)数据类,然后重新将该表从服务器资源管理器拖动到设计视图中。
解决方案二:在.dbml中,选择T_Test里面的一个字段(这个属性要能够做主键)->右键->属性->将主键一列的值改为true。最后将可以为Null一列的值改为false,如下图所示:
通过以上步骤,就能解决该问题。希望对您有帮助,如有不对的地方,希望您指出。