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

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

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

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