Transakcje Entity Framework

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>.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-us/library/dn456843(v=vs.113).aspx

0

Użyć prawdziwego ORMa.

0

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

1

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

0

dziękuję

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