Junior — Middle
Kaip Entity Framework įgyvendina paveldėtų C# klasių atvaizdavimą duomenų bazės lentelių struktūroje?
sobes.tech AI
Atsakymas iš AI
Entity Framework palaiko keletą strategijų, kaip žemėlapyti paveldėjimą C# klasių į duomenų bazės lenteles:
-
Table Per Hierarchy (TPH) — visos klasės ir jų savybės saugomos vienoje lentelėje su papildomu diskriminatoriaus stulpeliu, kuris nurodo objekto tipą.
-
Table Per Type (TPT) — kiekvienai klasei sukurta atskira lentelė, kurioje paveldėtojų lentelės turi tik papildomus laukus, o ryšys su pagrindine klase vyksta per išorinį raktą.
-
Table Per Concrete Class (TPC) — kiekvienai konkrečiai klasei sukurta atskira lentelė, kurioje yra visi laukai, įskaitant paveldėtus.
TPH pavyzdys:
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; } }
// Duomenų bazėje bus viena lentelė pavadinimu Animals su stulpeliais Id, Name, Lives, Breed ir Discriminator
Strategijos pasirinkimas priklauso nuo našumo reikalavimų ir duomenų struktūros.