我刚开始使用linq到sql,并且在插入带有自动递增字段的记录时遇到了问题。
我创建了一个由linq定义的公司对象的新实例。它已将自动递增字段'companyID'初始化为0。 InsertOnSubmit()失败,出现以下invalidOperationException。
不正确的自动同步规范 会员'companyID'
对于companyID属性,列属性IsDbGenerated为true。 我使用的是sql server 2000。
编辑:自动同步设置为OnIsert。 dataype在TSQL中是BigInt,长在c#中。
有谁知道为什么会出现这个错误以及如何解决它?
感谢
答案 0 :(得分:9)
找到答案。这与主键有关。在linq设计器中,主键是按原样设置的。在数据库中,相关字段未设置为主键。我修复了数据库中的键,这解决了问题。
答案 1 :(得分:3)
什么是数据类型?诠释? (在SQL和C#中都是int?)
您有什么自动同步设置?对于主键,它应该是“On Insert”
答案 2 :(得分:2)
同样的问题。
在DB中设置主键并在DBML上将AutoSync属性更改为"OnInsert"
帮助
答案 3 :(得分:1)
该类/表上的“自动同步”属性的值是多少?
我刚刚检查了一下,它被设置为'OnInsert'。 “自动生成的值”也设置为true。
答案 4 :(得分:1)
仅在数据库中插入值时才设置插入选项。如果您对数据库的安全选项没有任何问题,那么请始终在数据库中使用“从不”选项。
答案 5 :(得分:0)
如果可能,请删除数据库并重新创建。我的情况是我忘记在桌面上添加主键。然后在第一次插入进入数据库后,我得到了关于丢失主键的消息。我在dbml designer中手动应用了这个,但是第一个ID已经被用于导致“不正确的自动同步”#39;异常。