Junior — Middle
Как реализира Entity Framework отображението на наследени класове C# в структурата на таблиците на базата данни?
sobes.tech AI
Отговор от AI
Entity Framework поддържа няколко стратегии за картографиране на наследяването на класове C# в таблици на база данни:
-
Table Per Hierarchy (TPH) — всички класове и техните свойства се съхраняват в една таблица с допълнителна колона-дискриминатор, която указва типа на обекта.
-
Table Per Type (TPT) — за всеки клас се създава отделна таблица, където таблиците на наследниците съдържат само допълнителни полета, а връзката с базовия клас се осъществява чрез външен ключ.
-
Table Per Concrete Class (TPC) — за всеки конкретен клас се създава отделна таблица, съдържаща всички полета, включително наследените.
Пример 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; } }
// В базата данни ще има една таблица Animals с колони Id, Name, Lives, Breed и Discriminator
Изборът на стратегия зависи от изискванията за производителност и структурата на данните.