Ich versuche herauszufinden, wie ich eine Bridge-Tabelle zwischen zwei Entitäten darstellen kann (viele zu viele Relationen) Ich verwende zuerst Entity Framework Code
%Vor%Was ist die beste Klassenstruktur, sollte ich sie zuerst im Entity Framework Code darstellen und wie kann ich aus der Bridge-Tabelle auswählen und einfügen?
Sollte ich die Klassen so darstellen:
%Vor% Kurz gesagt: Dieser Beziehungstyp zwischen Student
und Class
wird in der EF-Terminologie als Viele-zu-viele-Beziehung bezeichnet.
Entity-Framework behandelt Tabellen, die an der Many-to-Many-Beziehung beteiligt sind, in einer netten Art und Weise. Wenn die Junction-Tabelle (manchmal Bridge-Tabelle, Assoziationstabelle, Linktabelle usw. genannt) nur aus den Fremdschlüsseln und keine anderen Spalten besteht, wird diese Tabelle von EF abstrahiert und die beiden Seiten erhalten eine Navigationseigenschaft, die eine Sammlung des anderen freilegt Seite.
Was Sie benötigen, ist, zuerst ein Entity Model für die obigen Tabellen zu generieren oder Ihre erste Code-Struktur wie im folgenden Post zu definieren - Erstellen einer Viele-zu-Viele-Mapping mit Code First .
Grundsätzlich müssen Sie abhängig von Ihrer Struktur die Methode OnModelCreating
auf die Beziehungen in Ihren Klassen anwenden.
Abhängig von Ihren Abfrageanforderungen finden Sie es informativ, um sich die folgenden Referenzen anzusehen:
Es gibt viele Möglichkeiten, viele-zu-viele-Beziehungen in Code First darzustellen. Es hängt wirklich nur davon ab, was Ihre Bedürfnisse mit den Mappings sind. Wenn Sie einfach die Karte registrieren müssen, funktioniert alles, was Sie bisher gemacht haben. Die Beziehung, die Sie anzeigen, wird von Code First erkannt und automatisch wird eine Mapping-Tabelle für Sie erstellt, die "StudentClasses"
genannt wirdUm ein Mapping in der Mapping-Tabelle zu erstellen, gehen Sie einfach wie folgt vor:
%Vor%Sie können dies auch in umgekehrter Reihenfolge tun:
%Vor%Wenn Sie genauer und expliziter über die Beziehung sein möchten, können Sie eine explizite Zuordnung in der OnModelCreating () - Methode des überschriebenen Kontextes einrichten. Das würde so aussehen:
%Vor%Wenn Sie aus irgendeinem Grund auf die Mapping-Tabelle im Code oder außerhalb der EntityFramework-Kontextoperationen zugreifen müssen, würde ich sagen, dass Sie eine dedizierte Map-Klasse erstellen und sie zu einem erstklassigen Bürger in Ihrem Code machen:
%Vor%Tags und Links c# entity-framework entity-framework-4.1 ef-code-first