2012-12-24 62 views
0

我试图通过拆分人员完成表格分割模式| PersonData与实体框架1:1的关系5.我正在使用代码优先的方法,因为由于某种原因EF 5.0不喜欢1:1关系作为模型优先,恕我直言糟透了。实体框架代码优先不保存数据

两个PersonPersonData得到了他们的ID列在SQL Server中设置为身份这样的:

表:

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

PersonData表:

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

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

然后,我改变了我的PersonData映射文件:

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

,并试图再次。现在,我得到

ReferentialConstraint从属属性映射到一个 商店生成列。列:'ID'。

我应该怎么改?

+1

EF 5.0可以在模型中进行1:1的关系 - 没有问题 – Ulises

+1

不,它不。在'布拉巴拉'关系中,'Blablalah'中的多重性是无效的。因为依赖角色属性不是关键属性,所以依赖角色的多重性的上界必须是*。 – user1695928

+0

你可以通过类继承来完成它。在这种情况下,PersonData将从Person继承。这非常简单。 – Ulises

回答

0

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