Sobes.tech
Junior — Middle

Hoe bepaalt Entity Framework dat een specifieke eigenschap van een object is gewijzigd?

sobes.tech AI

Antwoord van AI

Entity Framework volgt wijzigingen in objecteigenschappen met behulp van een mechanisme genaamd Change Tracking. Wanneer een object uit de database wordt geladen, slaat EF de oorspronkelijke staat op. Bij het aanroepen van de methode SaveChanges() vergelijkt EF de huidige staat van het object met de opgeslagen oorspronkelijke staat. Als de waarde van een eigenschap is veranderd, markeert EF deze als gewijzigd en genereert de bijbehorende SQL-query voor de update.

Voor klassen die de interface INotifyPropertyChanged implementeren, kan EF wijzigingen direct bij het optreden volgen. Anders gebeurt de vergelijking bij het opslaan.

Voorbeeld:

var user = context.Users.Find(1);
user.Name = "Nieuwe naam"; // EF markeert de eigenschap Name als gewijzigd
context.SaveChanges(); // update alleen de gewijzigde velden in de database