今天在采用Entity Framework 的Database First反向以及用Code First写的数据库表时,在测试时一直出现以下错误:
情况是这样的:
我有两张表,记主表为A,辅表为B(即外键所在的表,设外键为Id,同时也是表B的主键)
这个问题是因为:
我的表B中的键Id不仅是外键,也具有自增属性,即在建表是用Identity标识之。而这两个功能是矛盾的。一方面,作为FK,Id的值为主表A决定;另一方面,Id又要求自增。
解决方法:
目标:去除自增功能。但是无法直接在字段上修改,因此可以考虑删除字段重建列,或者是重建表。并更正主键与外键。
1、如果仅仅是指定值插入,可用以下语句,临时取消
SET
IDENTITY_INSERTTableName
ON
INSERT
INTO
tableName(xx,xx)
values
(xx,xx)
OFF
alter
@H_502_88@update
table
a
add
xxx
int
set
xxx=id