2009-08-16 42 views
1

我有一個Entity Framework模型與Employees表。每個員工都有一個SupervisorId,它指向同一個員工表中的另一條記錄。從我的數據庫設計推斷的實體模型VS看起來很好,但我無法用自引用更新或插入表的記錄。我已經開始使用Supervisors表的Employees表視圖,但我無法將FK約束添加到數據庫中的視圖。我如何在EF設計師那裏做到這一點,或達到相同的效果?如何將FK約束添加到我的實體模型而不將其添加到數據庫?

在最壞的情況下,我可以跳過FK約束,但想知道如何使用和填充標準或自定義組合框,這樣Employee窗體在編輯時仍然提供管理員選擇。

回答

2

不能將「外鍵」添加到實體模型而不將其添加到數據庫 - FK是一個數據庫設計結構來鏈接到表,因此必須添加到存儲模型(物理數據庫模型)在EF中 - 但它必須是1:1在acutal數據庫中存在的。

但是你可以做的是將一個關聯添加到你的概念模型;這是並非與數據庫1:1綁定的事物,但代表您的域模型。您可以通過右鍵單擊EDMX設計器中的實體並從上下文菜單中選擇「添加關聯」來添加此功能。

alt text http://i32.tinypic.com/2k51tg.jpg

這會彈出一個「添加關聯」對話框,在其中您可以選擇什麼樣的兩個實體聯繫起來,以及如何:

alt text http://i25.tinypic.com/2jbmjx2.jpg

有了這個,你應該可以添加關聯以及EF模型的概念方面的實體之間的關係,而不涉及底層數據庫模式。

Marc

+0

Thanks @Marc,但是如何將關聯的導航屬性與實際對象相關聯,例如,在你的例子中,我如何彈出合同條目? – ProfK 2009-08-16 11:56:52

+0

是的,很抱歉 - 這似乎不起作用 - 它仍然堅持被映射到數據庫中的FK關係:-(我希望它能夠在概念模型中解決這種關聯 - 沒有運氣: - ( – 2009-08-16 12:35:25

+0

+1對於嘗試,但我的問題沒有解決,所以抱歉,關閉,但沒有接受,嘿嘿。 – ProfK 2009-09-20 15:45:22