实体框架代码优先不保存数据

时间:2012-12-24 20:16:51

标签: c# ef-code-first entity-framework-5

我正在尝试通过拆分Person |来完成表拆分模式PersonData与Entity Framework 5的关系为1:1。我正在使用代码优先方法,因为出于某种原因,EF 5.0不喜欢1:1关系作为模型优先,恕我直言吮吸严重。

PersonPersonData都将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'。

我应该改变什么?

1 个答案:

答案 0 :(得分:0)

您必须将PersondData主键作为外键映射到Person。在这种情况下,ID_Person不能使用,因为它会导致一对多的关系(EF不支持唯一约束,没有唯一性,它不能建立一对一的关系)。