Junior — Middle
Hoe implementeert Entity Framework de mapping van erfende C#-klassen in de structuur van database-tabellen?
sobes.tech AI
Antwoord van AI
Entity Framework ondersteunt verschillende strategieën voor het mappen van erfelijkheid van C#-klassen naar databasetabellen:
-
Table Per Hierarchy (TPH) — alle klassen en hun eigenschappen worden opgeslagen in één tabel met een extra discriminator-kolom die het objecttype aangeeft.
-
Table Per Type (TPT) — voor elke klasse wordt een aparte tabel gemaakt, waarbij de tabellen van de erfgenamen alleen extra velden bevatten, en de relatie met de basisklasse wordt via een externe sleutel gelegd.
-
Table Per Concrete Class (TPC) — voor elke concrete klasse wordt een aparte tabel gemaakt die alle velden bevat, inclusief de geërfde.
Voorbeeld TPH:
public abstract class Animal { public int Id { get; set; } } public class Cat : Animal { public int Lives { get; set; } } public class Dog : Animal { public string Breed { get; set; } }
// In de database zal er één tabel zijn genaamd Animals met kolommen Id, Name, Lives, Breed en Discriminator
De keuze van de strategie hangt af van de prestatie-eisen en de datastructuur.