Sobes.tech
Junior — Middle

Kā Entity Framework nosaka, ka konkrēta objekta īpašība ir mainījusies?

sobes.tech AI

Atbilde no AI

Entity Framework seko izmaiņām objektu īpašībās, izmantojot mechanizmu, ko sauc par Change Tracking. Kad objekts tiek ielādēts no datu bāzes, EF saglabā tā sākotnējo stāvokli. Izsaucot SaveChanges() metodi, EF salīdzina pašreizējo objekta stāvokli ar saglabāto sākotnējo stāvokli. Ja īpašības vērtība ir mainījusies, EF to iezīmē kā mainītu un ģenerē atbilstošu SQL vaicājumu atjaunināšanai.

Klases, kas īsteno INotifyPropertyChanged interfeisu, EF var uzraudzīt izmaiņas uzreiz to rašanās brīdī. Pretējā gadījumā salīdzināšana notiek saglabāšanas laikā.

Piemērs:

var user = context.Users.Find(1);
user.Name = "Jauns vārds"; // EF iezīmēs īpašību Name kā mainītu
context.SaveChanges(); // atjauninās tikai mainītās laukus datu bāzē