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

  1. Table Per Hierarchy (TPH) — visas klases un to īpašības tiek glabātas vienā tabulā ar papildus diskriminatoru kolonnu, kas norāda objekta tipu.

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

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