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

  • huyked

    huyked

    28 Mart 2008
  • Joseph Hayhoe

    Joseph Hayho

    20 Mayıs 2010
  • TheOtherMau5

    TheOtherMau5

    6 Mart 2012