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(); // թարմացնում է միայն փոփոխված դաշտերը տվյալների բազայում