2011-03-01 33 views
2

有很多關於自我引用問題的閱讀,但我似乎無法找到我的問題的答案。 (A),我希望A有一個合夥人,另一個人(B)。當然,這意味着B在人類A中有一個夥伴。你如何解決這個問題?理想情況下,我只需要做:EF4自引用與關聯0..1 - > 1

humanA.Partner = humanB; 

和humanB會自動獲得humanA作爲合作伙伴。

我本來以爲我可以創造一個人類enity,並添加一個協會,是這樣的:

END1實體:,多重性:0..1,導航屬性: 合作伙伴

END2實體:,多重性:0..1

所以,每個人都有零個或一個合作伙伴,它是一個人。

感謝您的時間。

回答

0

1:0..1映射只有在entities "share" primary key時纔有可能。這意味着相關的實體FK也是它的PK。所以自引用1:0..1不能存在。我認爲你甚至不能直接在數據庫中映射它。

+0

兩個實體確實共享相同的密鑰(都是人類實體)。合作伙伴只是導航屬性名稱。 – 2011-03-01 13:02:10

+0

@Morten:不,他們沒有。在這種關係中,他們必須共享PK值 - 顯然你可以在一個表中擁有兩個具有相同PK值的實體。 – 2011-03-01 13:15:52