我正在尝试通过拆分Person |来完成表拆分模式PersonData与Entity Framework 5的关系为1:1。我正在使用代码优先方法,因为出于某种原因,EF 5.0不喜欢1:1关系作为模型优先,恕我直言吮吸严重。
Person
和PersonData
都将ID
列的|ID|
|Name|
|.....|
列设置为SQL Server中的标识符:
人表:
|ID|
|ID_Person|
|.....|
PersonData 表:
SaveChanges()
在PersonData
命令之后,SQL返回我无法在表中为identity列插入显式值。
然后我更改了我的this.HasKey(t => t.ID).Property(p =>
p.ID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
地图文件:
ReferentialConstraint
再次尝试。现在我得到
{{1}}中的从属属性映射到a 存储生成的列。栏目:'ID'。
我应该改变什么?
答案 0 :(得分:0)
您必须将PersondData
主键作为外键映射到Person
。在这种情况下,ID_Person
不能使用,因为它会导致一对多的关系(EF不支持唯一约束,没有唯一性,它不能建立一对一的关系)。