Wie implementiert Entity Framework die Abbildung von vererbten C#-Klassen in die Tabellenstruktur der Datenbank?
sobes.tech KI
Antwort von AI
Entity Framework unterstützt mehrere Strategien zur Abbildung der Vererbung von C#-Klassen in Datenbanktabellen:
-
Table Per Hierarchy (TPH) — alle Klassen und deren Eigenschaften werden in einer einzigen Tabelle mit einer zusätzlichen Diskriminator-Spalte gespeichert, die den Objekttyp angibt.
-
Table Per Type (TPT) — für jede Klasse wird eine separate Tabelle erstellt, in der die Tabellen der Erben nur zusätzliche Felder enthalten, und die Beziehung zur Basisklasse erfolgt über einen Fremdschlüssel.
-
Table Per Concrete Class (TPC) — für jede konkrete Klasse wird eine separate Tabelle erstellt, die alle Felder enthält, einschließlich der geerbten.
Beispiel TPH:
public abstract class Animal { public int Id { get; set; } public string Name { get; set; } }
public class Cat : Animal { public int Lives { get; set; } }
public class Dog : Animal { public string Breed { get; set; } }
// In der Datenbank gibt es eine Tabelle namens Animals mit den Spalten Id, Name, Lives, Breed und Discriminator
Die Wahl der Strategie hängt von den Leistungsanforderungen und der Datenstruktur ab.