Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

EF datacontext u TransactionScope - eventi

[es] :: .NET :: EF datacontext u TransactionScope - eventi

[ Pregleda: 1459 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vujkev
Beograd

Član broj: 8072
Poruke: 1347
*.dynamic.isp.telekom.rs.



+104 Profil

icon EF datacontext u TransactionScope - eventi14.08.2016. u 09:52 - pre 92 meseci
Nekoliko db operacija u nekoliko različitih klasa treba da se završe u okviru jedne transakcije. Za izvršavanje ovog seta operacija koristim TransactionScope

Code (csharp):

 using (var scope = new TransactionScope())
 {
      using (var db = new data.dbContext())
      {
       ...
      }

      using (var db = new data.dbContext())
      {
       ...
      }

      using (var db = new data.dbContext())
      {
       ...
      }

      scope.Complete();
 }
 


Želeo bih da svaka od klasa koja menja db ima mogućnost da odradi dodatni posao kad se cela transakcija uspešno završi i podaci se snime u bazu (npr obavesti korisnika da je snimanje uspešno).
Za sad sam uspeo da proširim originalni dbcontext i promenim originalni saveChanges tako da nakon snimanja u bazu aktiviram custom event. Problem je što se ovaj event aktivira odmah čim pozovem SaveChanges, a pre nego što odradim Complete cele transakcije.
Postoji li neki postupak da iz dbContexta izvučem podatak da se radi o nekoj većoj transakciji i da pratim kad se izvrši Complete te transakcije?

Poz.
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: EF datacontext u TransactionScope - eventi15.08.2016. u 00:46 - pre 92 meseci
Realno ne, jer context generalno nema pojma kolika je velicina transakcije ciji je deo (osim ako je implicitna, ali to je besmisleno jer transakcja ionako postoji na nivou konekcije).
Koliko ja znam ne postoji feedback na nivou transactionscope-a, commit prolazi silent. Medjutim ako si ti u kodu vec dosao do Complete() metoda znaci da su svi savechanges prosli ok, uradi notifikaciju tada?

Ili napravi neku listu Action-a pa tu ubacuj mini andlere koje ces pozvati posle Complete(), onda mozes imati varijabilan broj akcija u scope-u.

Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

[es] :: .NET :: EF datacontext u TransactionScope - eventi

[ Pregleda: 1459 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.