簡體   English   中英

如果數據庫沒有鏈接表,如何在Entity Framework中創建多對多關系?

[英]How do you create a many-to-many relationship in Entity Framework if the database doesn't have a linking table?

我正在使用VS 2010 Entity Framework設計器來修改從數據庫自動生成的一些實體。

數據庫結構由我正在構建UI的產品定義,因此我無法對其進行修改。

數據庫具有多表關系的表,這些表純粹基於兩個表上非鍵列中的公共值。

  • 表1 用戶具有單個id列userId和另一個名為userProfile的列。
  • 表2 SecurityProfile具有單個id列securityProfileId,並且還具有列userProfile

換句話說,用戶配置文件只是用戶到SecurityProfiles的映射的名稱。

該向導為Users和SecurityProfile表創建了實體。 我創建了一個名為UserProfile的新實體,其中包含一個關鍵字段: userProfile

我創建了一個從UserProfile到User以及從UserProfile到SecurityProfile的一對多關聯。 這一切都很好,除了UserProfile實體沒有表映射,因此它不會編譯。

如何在Entity Framework中創建此關聯?

更新:

如果不可能使用EF(如第一個答案所建議的那樣),是否可以手動創建一個非綁定實體,我可以用它來鏈接這兩個實體,這樣我就可以暴露一個至少更容易一點的對象模型導航?

即我將使UserSecurityProfile實體抽象並手動定義這些實體的擴展,並指向我手動創建的UserProfile實體的相應屬性

你不會。 EF無法與數據庫中不存在的多對多關聯一起使用。 EF要求與數據庫具有相同的引用完整性 - 在這種情況下,它要求連接表存在並映射到圖中使用的關聯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM