Sobes.tech
Junior — Middle

როგორ ახორციელებს Entity Framework-ი C#-ის მემკვიდრეობით კლასების რუკას მონაცემთა ბაზის სქემაში?

sobes.tech AI

პასუხი AI-სგან

Entity Framework, C# კლასების მემკვიდრეობის რუკის გადატანა მონაცემთა ბაზის ცხრილებში რამდენიმე სტრატეგიას უჭერს მხარს:

  1. Table Per Hierarchy (TPH) — ყველა კლასი და მისი თვისებები ინახება ერთ ცხრილში დამატებითი დისკრიმინატორის სვეტით, რომელიც მიუთითებს ობიექტის ტიპზე.

  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

სტრატეგიის არჩევა დამოკიდებულია შესრულების მოთხოვნებზე და მონაცემთა სტრუქტურაზე.