Transakcje Entity Framework

Odpowiedz Nowy wątek
2018-07-11 14:42
0

Mam pytanie jak efektywnie i prawidłowo zapisać poniższą transakcję

transakcja wywoływana jest w ten sposób

using (var dbContextTransaction = context.Database.BeginTransaction()) 
{

  1. Dodanie rekordów do encji A, komendą context.Set<encja A>.Add(encja)
  2. Zapis zmian context.SaveChanges()
  3. Commit by punkt 4 mógł czytać dodane do encji A rekordy w punkcie 1, komendą dbContextTransaction.Commit()
  4. Dodanie rekordów do encji B, plus  zapis informacji w postaci krótkich list dodawanych rekordów encji B, do rekordów encji A 
     ( dodanych w punkcie 1)

  context.SaveChanges(); 

  dbContextTransaction.Commit(); 
} 
  catch (Exception) 
                    { 
                        dbContextTransaction.Rollback(); 
                    } 

Pytanie dodatkowe, czy w Entity Framework dodanych rekordów do encji metodą context.Set<encja a="A">.Add(encja), nie można odczytać przed ich zapisem metodą context.SaveChanges(); ?
w przypadku objęcia taką transakcją trzeba jeszcze wykonać commit ale to szczegół.

Jak objąć jedną transakcją, dodanie rekordów do encji A i encji B, bez zapisu ich do bazy nim nie wykona się punkt 4, który informacje o dodanych rekordach do encji B zapisuje do wcześniej dodanych rekordów encji A w tej samej transakcji ?

przykład https://msdn.microsoft.com/en[...]brary/dn456843(v=vs.113).aspx

edytowany 3x, ostatnio: Pawel412, 2018-07-11 14:44

Pozostało 580 znaków

2018-07-11 15:48
0

Użyć prawdziwego ORMa.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."
Pokaż pozostałe 5 komentarzy
ORM do spania? - somekind 2018-07-12 10:50
Ja nigdy nie śpię. A Ty lepiej nie przesadzaj. - somekind 2018-07-13 00:26
@somekind: Z czym przesadzam? :P Ja nie spie, bo kochany inaczej linux sam sobie nie ogarnie Core - WeiXiao 2018-07-13 04:45
Ale ja Tobie nie mówię, żebyś szedł spać. - somekind 2018-07-14 00:40

Pozostało 580 znaków

2018-07-11 17:01
0

w ASP.NET jaki byłby dobry do takich rozwiązań ? szybki ?

Pozostało 580 znaków

2018-07-11 21:12
1

NHibernate, Dapper, zależy co chcesz osiągnąć, czy masz już bazę, itd.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2018-07-11 22:58
0

dziękuję

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0