Sobes.tech
Junior — Middle

W jaki sposób Entity Framework realizuje mapowanie dziedziczonych klas C# w strukturze tabel bazy danych?

sobes.tech AI

Odpowiedź od AI

Entity Framework obsługuje kilka strategii mapowania dziedziczenia klas C# do tabel bazy danych:

  1. Table Per Hierarchy (TPH) — wszystkie klasy i ich właściwości są przechowywane w jednej tabeli z dodatkową kolumną discriminatora, która wskazuje typ obiektu.

  2. Table Per Type (TPT) — dla każdej klasy tworzona jest osobna tabela, gdzie tabele dziedziczące zawierają tylko dodatkowe pola, a relacja z klasą bazową jest realizowana przez klucz obcy.

  3. Table Per Concrete Class (TPC) — dla każdej konkretnej klasy tworzona jest osobna tabela zawierająca wszystkie pola, w tym odziedziczone.

Przykład 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; } }

// W bazie danych będzie jedna tabela Animals z kolumnami Id, Name, Lives, Breed i Discriminator

Wybór strategii zależy od wymagań dotyczących wydajności i struktury danych.