Junior — Middle
Entity Framework, belirli bir nesnenin hangi özelliğinin değiştirildiğini nasıl belirler?
sobes.tech yapay zeka
AI'dan gelen yanıt
Entity Framework, nesnelerin özelliklerindeki değişiklikleri Change Tracking (Değişiklik Takibi) mekanizmasıyla izler. Bir nesne veritabanından yüklendiğinde, EF onun orijinal durumunu saklar. SaveChanges() yöntemi çağrıldığında, EF nesnenin şu anki durumu ile saklanan orijinal durumu karşılaştırır. Bir özelliğin değeri değişmişse, EF bu özelliği değiştirilmiş olarak işaretler ve güncelleme için uygun SQL sorgusunu oluşturur.
INotifyPropertyChanged arayüzünü uygulayan sınıflar için, EF değişiklikleri gerçekleştiği anda izleyebilir. Aksi takdirde, karşılaştırma kaydetme sırasında yapılır.
Örnek:
var user = context.Users.Find(1);
user.Name = "Yeni isim"; // EF, Name özelliğini değiştirilmiş olarak işaretler
context.SaveChanges(); // sadece değiştirilen alanları veritabanında günceller