[英]Entity Framework: One to Many relationship
我有一個關於Entity Framework模型關系的設計問題
我在edmx中有這個模型
業務規則:
Participant
可以有多個Roles
因此我創建了一個關系表ParticipantRoles
,它在Participant
和Role
表上具有1對多的關系
問題 :為了獲得參與者的角色價值,我必須深入了解Participant->ParticipantRole->Role
(參見下面的JSON輸出)
問題:
在EF中,如何設計表關系以繞過ParticipantsRole表。 我想訪問像Particant.Role
這樣的角色而不是Participant.ParticipantsRole.Role
你說Participant
可以擁有多個Role
。 當然, Role
可以有多個Participant
。 所以基本上這是一個多對多的關聯。
當聯結表只有兩個外鍵時,實體框架將只映射純多對多關聯(沒有連接類)。 在您的情況下,如果表ParticipantsRole
在生成模型時只有一個由ParticipantId
和RoleId
組成的主鍵,則不會創建類ParticipantsRole
。 您可以將Participant.Roles
和Role.Participants
作為導航屬性。
但是,該模型已使用ParticipantsRole
生成,您想要擺脫它。 (或者不,我會回到那個)。
這是你可以做的:
ParticipantRoles
。 ParticipantRoles
,使其只有兩個FK列,它們都構成主鍵。 ParticipantsRole
。 這應該為您提供一個純粹的多對多關聯的模型。
但是,在執行此操作之前請三思而后行。 M2m協會有一種演變為1-m-1關聯的方式(正如你現在所做的那樣)。 原因是遲早需要記錄關於關聯的數據,因此聯結表必須具有更多字段並且不再是純聯結表。 在您的情況下,我可以想象一天參與者的角色必須具有固定的訂單,或者標記為默認的一個。 在生產環境中將m2m關聯更改為1-m-1可能是一次重大改革。 - 需要考慮的事情......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.