2011-03-29 185 views
2

我有一個數據庫,其中的表沒有主鍵/外鍵。這個數據庫是第三方的,所以我不想編輯底層的數據庫結構。相反,我創建了一個EF模型,其中包含我想要使用的表格......現在我想在模型級別定義不同實體之間的關聯。例如,我有一個Person對象和一個Demographic對象,他們共享一個people_code_id列,它將是相同的......但我似乎無法弄清楚如何讓這個關聯出現,然後如何能夠訪問這些額外的列通過EntityDataSource?在實體框架中創建關聯?

回答

5

首先,您必須在實體模型中定義主鍵。每個實體都必須具有主鍵,否則您將無法定義關係以及所有實體變爲只讀。一旦定義了主鍵並且相關表包含外鍵屬性(只是相關實體的PK的ID),您可以手動創建關聯。 Here是如何做到這一點的一般方法。即使您沒有在數據庫中定義關係,它也應該可以工作。

+0

謝謝,這解決了我的問題的第一部分......但我仍然不確定如何使用EntityDataSource從兩個實體中提取數據,即使我現在使用導航屬性設置它們? – davemackey 2011-03-30 18:34:08

+0

對不起,我不會幫助你使用'EntityDataSource'。我不喜歡這些控制,我不使用它們。 – 2011-03-30 18:36:37

-1

除非在數據庫模式中定義,否則EF不會顯示關聯。您仍然可以使用這些鍵進行連接,就像使用普通SQL進行連接以匹配鍵和它們的引用一樣。

我向數據庫模式添加了約束,您不需要更改表本身,它應該很容易,除非您已經有約束問題。