Junior — Middle
Kako Entity Framework implementira mapiranje nasledđenih klasa C# u strukturu tabela baze podataka?
sobes.tech АИ
Одговор од АИ
Entity Framework podržava nekoliko strategija mapiranja nasleđivanja klasa C# u tabele baze podataka:
-
Table Per Hierarchy (TPH) — sve klase i njihove osobine se čuvaju u jednoj tabeli sa dodatnim diskriminator kolonom koja ukazuje na tip objekta.
-
Table Per Type (TPT) — za svaku klasu se kreira posebna tabela, gde tabele naslednika sadrže samo dodatna polja, a veza sa osnovnom klasom se ostvaruje putem spoljnog ključa.
-
Table Per Concrete Class (TPC) — za svaku konkretnu klasu se kreira posebna tabela koja sadrži sva polja, uključujući nasledne.
Primer 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; } }
// U bazi podataka će postojati jedna tabela Animals sa kolonama Id, Name, Lives, Breed i Discriminator
Izbor strategije zavisi od zahteva za performanse i strukture podataka.