0

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

两者都PersonPersonData它们的ID列设置为 SQL Server 中的标识,如下所示:

人员表:

|ID|
|Name|
|.....|

人员数据表:

|ID|
|ID_Person|
|.....|

就在SaveChanges()命令 SQL 返回后,我无法在表中插入标识列的显式值。

然后我改变了我的PersonData地图文件:

this.HasKey(t => t.ID).Property(p =>
p.ID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

并再次尝试。现在我明白了

a 中的依赖属性ReferentialConstraint映射到存储生成的列。列:'ID'。

我应该改变什么?

4

1 回答 1

0

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

于 2012-12-25T19:48:38.510 回答