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

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

  2. 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ľúč.

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