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

  1. Table Per Hierarchy (TPH) — visos klasės ir jų savybės saugomos vienoje lentelėje su papildomu diskriminatoriaus stulpeliu, kuris nurodo objekto tipą.

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

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