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
სტრატეგიის არჩევა დამოკიდებულია შესრულების მოთხოვნებზე და მონაცემთა სტრუქტურაზე.