Heim > Backend-Entwicklung > C++ > Wie kann man eine viele zu viele Beziehung zu zusätzlichen Eigenschaften im EF-Kern implementieren?

Wie kann man eine viele zu viele Beziehung zu zusätzlichen Eigenschaften im EF-Kern implementieren?

Linda Hamilton
Freigeben: 2025-01-31 10:51:10
Original
992 Leute haben es durchsucht

How to Implement a Many-to-Many Relationship with Additional Properties in EF Core?

Verwenden Sie die zugehörige Tabelle im EF -Kern, um eine Multi -to -viele -Beziehung zu erstellen

szene

Angenommen, wir haben das folgende Datenmodell:

Konfigurieren Sie mit fließender API
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; }
}
Nach dem Login kopieren
verbunden

Leider unterstützt der Entity Framework Core (EF Core) die Verwendung einer benutzerdefinierten Verbindungstabelle nicht, um eine multi -to -multiple -Beziehung zu erstellen. EF Core erstellt und verwaltet die interne Verbindungstabelle automatisch, damit sie nicht zugreifen können.

Alternative: Erstellen Sie zwei Paare von Multi -Beziehung

Um eine Verbindungstabelle mit zusätzlichen Attributen (z. B. MemberComment) zu verwenden, müssen wir zwei eins -multi -Beziehung herstellen:

(Das Codesegment ist der gleiche wie die Eingabe, das Duplikat ist hier weggelassen)

Verwenden Sie Assoziation <<>

Jetzt können wir verschiedene Operationen bei diesen Einheiten ausführen:

    Holen Sie sich den Kommentar des Mitglieds
  • Holen Sie sich die Mitglieder mit Kommentaren
  • filtern Sie das Attribut in der Verbindungstabelle
  • Erstellen und verwalten Sie die Beziehung zwischen Entitäten
  • Beziehung und Entität löschen
Abfrage <查>

Beziehungsmanagement <关系>
// 获取 LastName = "Smith" 的成员的评论
var commentsOfMembers = context.Members
    .Where(m => m.LastName == "Smith")
    .SelectMany(m => m.MemberComments.Select(mc => mc.Comment))
    .ToList();

// 获取名为“Smith”的成员及其评论
var membersWithComments = context.Members
    .Where(m => m.LastName == "Smith")
    .Select(m => new
    {
        Member = m,
        Comments = m.MemberComments.Select(mc => mc.Comment)
    })
    .ToList();
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann man eine viele zu viele Beziehung zu zusätzlichen Eigenschaften im EF-Kern implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage