Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 4
  • 110

Odpowiedź (1)

  • 5

Klasa DbContext została uporządkowana w stosunku do ObjectContext i wiele metod oraz zdarzeń zmieniło swoje nazwy lub zostało usuniętych. Podobny los spotkał zdarzenie SavingChanges, które zostało usunięte. Jeśli chcesz podpiąć się pod zapis, to należy nadpisać wirtualną metodę SaveChanges.

 

Na przykład:

 

     public override int SaveChanges()
    {
       // kod...
    }
   

 

Jednak istnieje sposób na podpięcie się do zdarzenia SavingChanges. W związku z tym, że klasa DbContext implementuje interfejs IObjectContextAdapter, należy rzutować DbContext na tę klasę i wówczas otrzymamy dostęp do starych metod i zdarzeń:

 

 

using (var context = new MyContext())
    {
        var objectContext = ((IObjectContextAdapter)context).ObjectContext;

        objCtx.SavingChanges += (sender, args) => { // kod... };

        ctx.SaveChanges();


    }

 

 

  • Odpowiedział
  • @ | 23.04.2014
  • TRENER ALTKOM AKADEMII