Sobes.tech
Junior — Middle

Jak Entity Framework implementuje mapování děděných tříd C# do struktury tabulek databáze?

sobes.tech AI

Odpověď od AI

Entity Framework podporuje několik strategií mapování dědičnosti tříd C# do tabulek databáze:

  1. Table Per Hierarchy (TPH) — všechny třídy a jejich vlastnosti jsou uloženy v jedné tabulce s přídavnou diskriminační sloupcem, který udává typ objektu.

  2. Table Per Type (TPT) — pro každou třídu je vytvořena samostatná tabulka, kde tabulky potomků obsahují pouze dodatečná pole, a vztah s základní třídou je realizován přes cizí klíč.

  3. Table Per Concrete Class (TPC) — pro každou konkrétní třídu je vytvořena samostatná tabulka obsahující všechna pole, včetně zděděných.

Pří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ázi bude jedna tabulka Animals s sloupci Id, Name, Lives, Breed a Discriminator

Volba strategie závisí na požadavcích na výkon a struktuře dat.