Junior — Middle
Cum implementează Entity Framework maparea claselor moștenite C# în structura tabelelor bazei de date?
sobes.tech AI
Răspuns de la AI
Entity Framework suportă mai multe strategii de mapare a moștenirii claselor C# în tabelele bazei de date:
-
Table Per Hierarchy (TPH) — toate clasele și proprietățile lor sunt stocate într-un singur tabel, cu o coloană discriminator suplimentară care indică tipul obiectului.
-
Table Per Type (TPT) — pentru fiecare clasă se creează un tabel separat, unde tabelele moștenitoare conțin doar câmpuri suplimentare, iar legătura cu clasa de bază se face printr-o cheie externă.
-
Table Per Concrete Class (TPC) — pentru fiecare clasă concretă se creează un tabel separat, care conține toate câmpurile, inclusiv cele moștenite.
Exemplu 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; } }
// În bază de date va exista un tabel numit Animals cu coloanele Id, Name, Lives, Breed și Discriminator
Alegerea strategiei depinde de cerințele de performanță și de structura datelor.