Sobes.tech
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();
}