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

  • Ash100HD

    Ash100HD

    29 EKİM 2011
  • Elefant Traks

    Elefant Trak

    5 HAZİRAN 2007
  • RFS Dan

    RFS Dan

    22 Temmuz 2014