Sobes.tech
Junior — Middle

Ինչպե՞ս է Entity Framework-ը իրականացնում ժառանգական C# դասերի քարտեզագրումը տվյալների բազայի աղյուսակների կառուցվածքում։

sobes.tech AI

Պատասխան AI-ից

Entity Framework-ն աջակցում է մի քանի ռազմավարությունների՝ C# դասերի ժառանգության քարտեզագրումը տվյալների բազայի աղյուսակների մեջ.

  1. Table Per Hierarchy (TPH) — բոլոր դասերն ու նրանց հատկությունները պահվում են մեկ աղյուսակում՝ լրացուցիչ discriminator սյունակով, որը ցույց է տալիս օբյեկտի տիպը:

  2. Table Per Type (TPT) — յուրաքանչյուր դասի համար ստեղծվում է առանձին աղյուսակ, որտեղ ժառանգորդների աղյուսակները պարունակում են միայն լրացուցիչ դաշտեր, իսկ կապը հիմնական դասի հետ իրականացվում է արտաքին բանալի միջոցով:

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

Ընտրությունը կախված է կատարողականության պահանջներից և տվյալների կառուցվածքից։