Middle
Değişiklik takibi nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Değişiklik takibi, Entity Framework gibi ORM (Object-Relational Mapper) içindeki bir mekanizmadır ve veri bağlamına yüklenmiş varlıkların (nesnelerin) durumunu izler. Bu, veritabanında yapılan değişikliklerin kaydedilmesi sırasında uygun INSERT, UPDATE veya DELETE komutlarının çalıştırılmasını sağlar.
Varlıkların durumları:
- Added: Nesne yeni oluşturulmuş ve bağlama eklenmiş, ancak henüz veritabanına kaydedilmemiştir.
- Unchanged: Nesne veritabanından yüklenmiş veya kaydedilmiştir ve herhangi bir değişiklik yapılmamıştır.
- Modified: Nesnenin bir veya daha fazla özelliği, yüklenmeden veya kaydedilmeden sonra değiştirilmiştir.
- Deleted: Nesne, veritabanından silinmek üzere işaretlenmiştir.
- Detached: Nesne, veri bağlamı tarafından izlenmiyor.
// Entity Framework Core'da değişiklik takibi örneği
using (var context = new MyDbContext())
{
// Varlık yükleme
var myEntity = context.MyEntities.Find(1);
// Başlangıç durumunu kontrol et
Console.WriteLine($"Başlangıç durumu: {context.Entry(myEntity).State}"); // Unchanged gösterir
// Özelliği değiştir
myEntity.MyProperty = "Yeni Değer";
// Değişiklik sonrası durumu kontrol et
Console.WriteLine($"Değişiklik sonrası durumu: {context.Entry(myEntity).State}"); // Modified gösterir
// Yeni varlık ekle
var newEntity = new MyEntity { MyProperty = "Başka Bir Yeni" };
context.MyEntities.Add(newEntity);
// Yeni varlığın durumunu kontrol et
Console.WriteLine($"Yeni varlığın durumu: {context.Entry(newEntity).State}"); // Added gösterir
// Varlığı silmek için işaretle
context.MyEntities.Remove(myEntity);
// Silme sonrası durumu kontrol et
Console.WriteLine($"Silme sonrası durumu: {context.Entry(myEntity).State}"); // Deleted gösterir
// Değişiklikleri kaydet
context.SaveChanges();
}