Junior — Middle
Kā Entity Framework realizē mantojo C# klases datu bāzes tabulu struktūrā?
sobes.tech AI
Atbilde no AI
Entity Framework atbalsta vairākas stratēģijas C# klases mantošanas kartēšanai datu bāzes tabulās:
-
Table Per Hierarchy (TPH) — visas klases un to īpašības tiek glabātas vienā tabulā ar papildus diskriminatoru kolonnu, kas norāda objekta tipu.
-
Table Per Type (TPT) — katrai klasei tiek izveidota atsevišķa tabula, kurā mantojošo tabulas satur tikai papildu laukus, un saikne ar pamata klasi tiek nodrošināta ar ārējo atslēgu.
-
Table Per Concrete Class (TPC) — katrai konkrētai klasei tiek izveidota atsevišķa tabula, kas satur visus laukus, ieskaitot mantojumus.
TPH piemērs:
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; } }
// Datu bāzē būs viena tabula ar nosaukumu Animals ar kolonnām Id, Name, Lives, Breed un Discriminator
Stratēģijas izvēle ir atkarīga no veiktspējas prasībām un datu struktūras.