Entity Framework'te takip nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Entity Tracking (Varlık Takibi), Entity Framework Core'da, veritabanından yüklenen varlık nesnelerinde yapılan değişiklikleri izleyen bir mekanizmadır. Bağlam, her yüklenen varlığın durumuyla ilgili bilgileri saklar ve değişiklikleri kaydederken (DbContext.SaveChanges()) veritabanını güncellemek için SQL sorguları oluşturabilir.
Varlıkların temel durumları:
- Added: Varlık bağlama eklenmiş, ancak henüz veritabanında yok.
- Unchanged: Varlık veritabanından yüklenmiş ve özellikleri değiştirilmemiş.
- Modified: Varlığın bazı özellikleri, veritabanından yüklenmesinden bu yana değiştirilmiş.
- Deleted: Varlık silinmek üzere işaretlenmiş.
- Detached: Varlık bağlam tarafından izlenmiyor.
Varsayılan olarak, LINQ sorguları ile çalışan varlıklar izlenir. Bu, Entity Framework'un hangi değişikliklerin kaydedilmesi gerektiğini otomatik olarak belirlemesine olanak tanır.
Açıkça izleme göstergesi örneği:
// İzlenen sorgu
var trackedUser = context.Users.FirstOrDefault(u => u.Id == 1);
// İzlenmeyen sorgu
var untrackedUser = context.Users.AsNoTracking().FirstOrDefault(u => u.Id == 2);
AsNoTracking() kullanılarak izleme devre dışı bırakmak, veritabanında değişiklik kaydetmeye gerek yoksa sorgu performansını artırabilir, çünkü EF varlıkların durumunu izlemek için kaynak harcamaz.