Wie stellen Bridge-Tabelle in Entity Framework Code First
Ich versuche herauszufinden, wie ich darstellen kann, eine Brücke Tabelle zwischen zwei Entitäten (m: N-Beziehung)
Ich bin Mit Entity Framework Code First -
Student:
StudentID int PK
StudentName VARCHAR(50)
Class:
ClassID int PK
ClassName VARCHAR(50)
StudentClass:
StudentID INT PK
ClassID INT PK
Was ist die beste Klasse Struktur sollte ich Verwenden, um stellen im Entity Framework Code First und wie kann ich wählen Sie aus der bridge-Tabelle, und fügen Sie es in.
Sollte ich stellen die Klassen wie folgt:
public class Student
{
public int StudentId { get; set; }
public string StudentName { get; set; }
public List<Class> Class { get; set; }
}
public class Class
{
public int ClassId { get; set; }
public string ClassName { get; set; }
public List<Student> Students { get; set; }
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kurz: Dieser Beziehung geben zwischen
Student
undClass
heißt viele zu viele Beziehung EF-Terminologie.Was Sie brauchen, ist zum generieren eines Entity-Modell für die obigen Tabellen ersten aus oder definieren Sie eine erste code-Struktur wie in der folgenden post - Erstellen einer m: N-Mapping Verwendung von Code First.
Grundsätzlich, je nach Ihrer Struktur, die Sie benötigen, um die Methode
OnModelCreating
geeignet, um die Beziehungen in Ihren Klassen.Je nach - Abfrage muss Sie finden es informativ zu betrachten, die folgenden Referenzen:
Gibt es viele Möglichkeiten zum darstellen von viele-zu-viele-Beziehungen in den Ersten Code. Es ist wirklich nur darauf an, was Ihre Bedürfnisse sind mit den Zuordnungen. Wenn Sie einfach zu registrieren, die Karte, alles, was Sie haben bisher funktioniert. Die Beziehung, die Sie zeigen, wird erkannt werden von Code First und eine mapping-Tabelle wird automatisch für Sie erstellt, genannt "StudentClasses"
Erstellen Sie eine Zuordnung in der mapping-Tabelle einfach Folgendes tun:
Können Sie auch in umgekehrter Reihenfolge Vorgehen:
Wenn Sie möchten, um genauer zu sein und ausdrücklich über die Beziehung, die Sie einrichten können eine explizite Zuordnung in der überschriebenen Kontext OnModelCreating () - Methode. Das würde dann so Aussehen:
Wenn aus irgendeinem Grund Sie brauchen, um den Zugriff auf die mapping-Tabelle im code oder außerhalb der Entity Framework-Kontext-Operationen würde ich sagen, erstellen Sie eine dedizierte Karte, Klasse und machen es zu einem first class citizen in Ihrem code: