Junior — Middle
Ako implementuje Entity Framework mapovanie dedičných tried C# do štruktúry tabuliek databázy?
sobes.tech AI
Odpoveď od AI
Entity Framework podporuje niekoľko stratégií mapovania dedičnosti tried C# do tabuliek databázy:
-
Table Per Hierarchy (TPH) — všetky triedy a ich vlastnosti sa ukladajú do jednej tabuľky s ďalším diskriminačným stĺpcom, ktorý udáva typ objektu.
-
Table Per Type (TPT) — pre každú triedu sa vytvorí samostatná tabuľka, kde tabuľky potomkov obsahujú iba dodatočné polia a vzťah s základnou triedou je realizovaný cez cudzí kľúč.
-
Table Per Concrete Class (TPC) — pre každú konkrétnu triedu sa vytvorí samostatná tabuľka obsahujúca všetky polia, vrátane zdedených.
Príklad 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; } }
// V databáze bude jedna tabuľka Animals s stĺpcami Id, Name, Lives, Breed a Discriminator
Voľba stratégie závisí od požiadaviek na výkon a štruktúry dát.