Wie wird die Bridge-Tabelle zuerst im Entity Framework-Code dargestellt?

8

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%     
Amr Ramadan 03.01.2013, 23:45
quelle

2 Antworten

7

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.

%Vor%

Abhängig von Ihren Abfrageanforderungen finden Sie es informativ, um sich die folgenden Referenzen anzusehen:

EL Yusubov 03.01.2013, 23:50
quelle
3

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 wird

Um 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%     
hercules08 16.02.2014 02:15
quelle