Sobes.tech
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:

  1. Table Per Hierarchy (TPH) — alle klassen en hun eigenschappen worden opgeslagen in één tabel met een extra discriminator-kolom die het objecttype aangeeft.

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

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