Sobes.tech
Junior — Middle

Wie bestimmt Entity Framework, dass eine bestimmte Eigenschaft eines Objekts geändert wurde?

sobes.tech KI

Antwort von AI

Entity Framework verfolgt Änderungen an Objekteigenschaften mithilfe eines Mechanismus namens Change Tracking. Wenn ein Objekt aus der Datenbank geladen wird, speichert EF seinen ursprünglichen Zustand. Beim Aufruf von SaveChanges() vergleicht EF den aktuellen Zustand des Objekts mit dem gespeicherten ursprünglichen Zustand. Wenn sich der Wert einer Eigenschaft geändert hat, markiert EF diese Eigenschaft als geändert und generiert die entsprechende SQL-Anweisung zur Aktualisierung.

Für Klassen, die das Interface INotifyPropertyChanged implementieren, kann EF Änderungen sofort beim Auftreten verfolgen. Andernfalls erfolgt der Vergleich beim Speichern.

Beispiel:

var user = context.Users.Find(1);
user.Name = "Neuer Name"; // EF markiert die Eigenschaft Name als geändert
context.SaveChanges(); // aktualisiert nur die geänderten Felder in der Datenbank