2012-12-24 136 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不支持唯一性約束,並且沒有唯一性,所以不能建立一對一的關係)。