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