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

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

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

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