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