Junior — Middle
Hogyan valósítja meg az Entity Framework a C# öröklődő osztályainak leképezését az adatbázis táblastruktúrájába?
sobes.tech MI
Válasz az MI-től
Az Entity Framework több stratégiát támogat a C# osztályok öröklődésének adatbázis táblákba történő leképezéséhez:
-
Table Per Hierarchy (TPH) — minden osztály és tulajdonságuk egyetlen táblában tárolódik, egy kiegészítő diszkriminátor oszloppal, amely megmutatja az objektum típusát.
-
Table Per Type (TPT) — minden osztályhoz külön táblát hozunk létre, ahol az örökölt osztályok csak kiegészítő mezőket tartalmaznak, és a kapcsolat az alap osztállyal külső kulcson keresztül történik.
-
Table Per Concrete Class (TPC) — minden konkrét osztályhoz külön táblát hozunk létre, amely tartalmazza az összes mezőt, beleértve az öröklöttet is.
TPH példa:
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; } }
// Az adatbázisban egy Animals nevű táblázat lesz, amely tartalmazza az Id, Name, Lives, Breed és Discriminator oszlopokat.
A stratégia kiválasztása a teljesítményigényektől és az adatszerkezettől függ.