Entity Framework Core: Wie erstelle ich eine automatisch verknüpfte Tabelle?
Posted: 07 Jan 2025, 14:08
Vielleicht ist das eine dumme Frage. In meinem Projekt in .NET8 C# mit Entity Framework Core habe ich einige Tabellen, in denen die anzuzeigenden Elemente in einer Dropdown-Liste gespeichert sind, und ich verwende sie in verschiedenen Teilen der Anwendung.
Zum Beispiel habe ich die Tabellen tbl_BrainExplanations oder tbl_SmokeTypes, die die Liste enthalten, die ich anzeigen möchte. Andere Tabellen können mehr als ein Element enthalten: Ich kann beispielsweise drei verschiedene Arten von Rauch mit einem einzigen Datensatz in SessionInitialDetails verknüpfen. Hier ist das Diagramm.

Die einfache Definition der tbl_SmokeTypes lautet
Wenn ich eine Tabelle mit SessionInitialDetails im von mir geschriebenen Code verknüpfen möchte
oder
Entity Framework Core erstellt also eine Tabelle für tbl_SmokeTypes, die auch ein Feld namens SessionInitialDetailID enthält, aber das ist nicht das, was ich wollte. Aus diesem Grund habe ich selbst eine Entität namens tbl_BrainExplanations und eine neue Entität erstellt, um mehr als einen Datensatz aus dieser Tabelle einer anderen Tabelle namens SessionDetails zuzuordnen (nicht im Diagramm). ).
Ich habe erwartet, dass Entity Framework Core beim Definieren einer ICollection oder IList selbst eine Verknüpfungstabelle erstellt. Aber das ist offensichtlich nicht der Fall. Muss ich die Verbindungstabellen also selbst erstellen, oder kann Entity Framework Core das tun?
Zum Beispiel habe ich die Tabellen tbl_BrainExplanations oder tbl_SmokeTypes, die die Liste enthalten, die ich anzeigen möchte. Andere Tabellen können mehr als ein Element enthalten: Ich kann beispielsweise drei verschiedene Arten von Rauch mit einem einzigen Datensatz in SessionInitialDetails verknüpfen. Hier ist das Diagramm.

Die einfache Definition der tbl_SmokeTypes lautet
Code: Select all
[Table("tbl_SmokeTypes")]
public class SmokeType
{
public long ID { get; set; }
public string? Name { get; set; }
}
Code: Select all
public virtual ICollection? SmokeTypes { get; set; }
Code: Select all
public virtual List? SmokeTypes { get; set; }
Ich habe erwartet, dass Entity Framework Core beim Definieren einer ICollection oder IList selbst eine Verknüpfungstabelle erstellt. Aber das ist offensichtlich nicht der Fall. Muss ich die Verbindungstabellen also selbst erstellen, oder kann Entity Framework Core das tun?