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

  1. Table Per Hierarchy (TPH) — sve klase i njihove osobine se čuvaju u jednoj tabeli sa dodatnim diskriminator kolonom koja ukazuje na tip objekta.

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

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