SORU
29 Mart 2011, Salı


Varlık çerçevesi varlıklar içinde yapılan değişiklikleri geri alma

bu önemsiz bir soru olabilir ama: ADO.NET varlık çerçevesi otomatik olarak değişir (oluşturulan varlıklar) izler ve bu nedenle özgün değerleri nasıl geri alma değişiklikleri varlık nesneleri için yapılmış olabilir miyim? tutar Beri

Kullanıcı "" ızgara görünümünde. varlıklar Müşteri bir dizi düzenlemek için izin veren bir form var

Şimdi iki düğme var "" ve ""Kabul", Context.SaveChanges() ve değiştirilmiş nesneleri veritabanı geri yazılır diyorum tıkladım.": Geri Döndürme, Kabul "Tıklandığında, tüm nesneler için özgün özellik değerlerini almak istiyorum. "Döner Bunun için kodu ne olabilir?

Teşekkürler

CEVAP
31 Temmuz 2013, ÇARŞAMBA


Kirli eşyalar için DbContext sorgu ChangeTracker. Set Silinmiş Öğeler değişmeden ve ilave öğeleri için devlet ilişkisi kesildi. Değiştirilen ürünler için, orijinal değerler kullanın ve giriş akım değerleri ayarlayın. Değişmeden değiştirilen giriş sonunda durumu:

    public void RollBack()
    {
        var context = DataContextFactory.GetDataContext();
        var changedEntries = context.ChangeTracker.Entries().Where(x => x.State != EntityState.Unchanged).ToList();

        foreach (var entry in changedEntries.Where(x=>x.State == EntityState.Modified))
        {
            entry.CurrentValues.SetValues(entry.OriginalValues);
            entry.State = EntityState.Unchanged;
        }

        foreach (var entry in changedEntries.Where(x=>x.State == EntityState.Added))
        {
            entry.State = EntityState.Detached;
        }

        foreach (var entry in changedEntries.Where(x=>x.State == EntityState.Deleted))
        {
            entry.State = EntityState.Unchanged;
        }

    }

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Droid Life

    Droid Life

    17 Kasım 2009
  • MrChiCity3

    MrChiCity3

    14 NİSAN 2008
  • SavageLuxxxGaming - Daily NBA 2K15 & NBA Live 15 Enjoy And Subscribe!

    SavageLuxxxG

    11 Ocak 2013