Junior — Middle
როგორ განსაზღვრავს Entity Framework, რომ კონკრეტული ობიექტის თვისება შეიცვალა?
sobes.tech AI
პასუხი AI-სგან
Entity Framework აკვირდება ობიექტების თვისებების ცვლილებებს Change Tracking მექანიზმის საშუალებით. როდესაც ობიექტი იტვირთება მონაცემთა ბაზიდან, EF ინახავს მის საწყის მდგომარეობას. როდესაც იძახით SaveChanges() მეთოდს, EF ადარებს ობიექტის მიმდინარე მდგომარეობას შენახულ საწყის მდგომარეობასთან. თუ თვისების მნიშვნელობა შეიცვალა, EF აღნიშნავს მას როგორც შეცვლილს და ქმნის შესაბამის SQL-საკითხს განახლებისთვის.
INotifyPropertyChanged ინტერფეისის განხორციელების კლასებისთვის, EF შეუძლია თვალთვალი ცვლილებებს მაშინვე მათ წარმოქმნის დროს. წინააღმდეგ შემთხვევაში, შედარება ხდება შენახვის დროს.
მაგალითი:
var user = context.Users.Find(1);
user.Name = "ახალი სახელი"; // EF აღნიშნავს Name თვისებას როგორც შეცვლილს
context.SaveChanges(); // განაახლებს მხოლოდ შეცვლილ ველებს ბაზაში