Heim >Backend-Entwicklung >C++ >Wie implementieren Sie viele zu viele Beziehungen mit benutzerdefinierten Join-Tabellen im Entity Framework?
Erstellen Sie mehrere -TO -viele Beziehungen mit einer benutzerdefinierten Verbindungstabelle
Im physischen Rahmen beinhalten die meisten Beziehungen normalerweise eine versteckte Verbindungstabelle eines internen Managements. In einigen Fällen benötigen Sie jedoch möglicherweise eine benutzerdefinierte Verbindungstabelle mit zusätzlichen Attributen.
Die Grenzen mehr Beziehungen
Leider kann die Verwendung von fließender API keine Multi -Pair -Beziehung mit einer benutzerdefinierten Verbindungstabelle erstellen. EF erfordert eine versteckte, interne Managementverbindungstabelle, um mehrere Beziehungen zu erreichen.
Alternative Methode
Im Gegenteil, um eine benutzerdefinierte Verbindungstabelle mit zusätzlichen Attributen zu verwenden, können Sie zwei separate eine -multi -Beziehung erstellen, die jeweils in eine der Verbindungstabellen entität ist. Beispiel
Betrachten Sie die folgende Szene:
In diesem Modell wird
als benutzerdefinierte Verbindungstabelle mit zusätzlichen Attributenund
verwendet.<code class="language-csharp">public class Member { public int MemberID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public virtual ICollection<MemberComment> MemberComments { get; set; } } public class Comment { public int CommentID { get; set; } public string Message { get; set; } public virtual ICollection<MemberComment> MemberComments { get; set; } } public class MemberComment { [Key, Column(Order = 0)] public int MemberID { get; set; } [Key, Column(Order = 1)] public int CommentID { get; set; } public virtual Member Member { get; set; } public virtual Comment Comment { get; set; } public int Something { get; set; } public string SomethingElse { get; set; } }</code>
Anfragenbeziehung MemberComment
Something
SomethingElse
Um diese Beziehungen abzufragen, können Sie den LINQ -Ausdruck verwenden:
Die Vorteile dieser Methode
Diese alternative Methode hat die folgenden Vorteile:
<code class="language-csharp">// 查找 LastName = "Smith" 的成员的所有评论 var commentsOfMembers = context.Members .Where(m => m.LastName == "Smith") .SelectMany(m => m.MemberComments.Select(mc => mc.Comment)) .ToList();</code>
<code class="language-csharp">// 查找 LastName = "Smith" 的所有成员及其评论 var membersWithComments = context.Members .Where(m => m.LastName == "Smith") .Select(m => new { Member = m, Comments = m.MemberComments.Select(mc => mc.Comment) }) .ToList();</code>
benutzerdefinierte Verbindungstabelle: Sie können das Design der Verbindungstabelle steuern und nach Bedarf andere Attribute hinzufügen.
Anfrage:Sie können die Attribute in der Verbindungstabelle entsprechen und eine Verbindung herstellen.
Das obige ist der detaillierte Inhalt vonWie implementieren Sie viele zu viele Beziehungen mit benutzerdefinierten Join-Tabellen im Entity Framework?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!