Sobes.tech
Junior — Middle

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:

  1. 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.

  2. 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.

  3. 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.