Junior — Middle
Entity Framework, obyektin müəyyən bir xüsusiyyətinin dəyişdirildiyini necə müəyyən edir?
sobes.tech Süni İntellekt
AI-dan cavab
Entity Framework obyektlərin xüsusiyyətlərindəki dəyişiklikləri Change Tracking mexanizmi ilə izləyir. Bir obyekt verilənlər bazasından yükləndikdə, EF onun ilkin vəziyyətini saxlayır. SaveChanges() metodunu çağırdıqda, EF obyektin hazırkı vəziyyətini saxlanılan ilkin vəziyyətlə müqayisə edir. Əgər bir xüsusiyyətin dəyəri dəyişibsə, EF onu dəyişdirilmiş kimi işarələyir və müvafiq SQL sorğusunu hazırlayır.
INotifyPropertyChanged interfeysini tətbiq edən sinflər üçün, EF dəyişiklikləri baş verdiyi zaman dərhal izləyə bilər. Əks halda, müqayisə yadda saxlanma zamanı baş verir.
Nümunə:
var user = context.Users.Find(1);
user.Name = "Yeni ad"; // EF Name xüsusiyyətini dəyişdirilmiş kimi işarələyəcək
context.SaveChanges(); // yalnız dəyişdirilmiş sahələri bazada yeniləyəcək