Codice EF Primo DBContext e Transazioni

Vorrei sapere qual è il modo migliore per implementare le transazioni con DBContext . In particolare,

  1. DbContext.SaveChanges implementa la transazione internall se cambio più quadro?
  2. Se voglio chiamare DbContext.SaveChanges più volte (stesso contxet / diversi contxets), come si può ottenere una transazione?

  1. Sì. SaveChanges utilizza la transazione internamente.
  2. Utilizzare TransactionScope per racchiudere più chiamate su SaveChanges

Esempio:

 using(var scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted })) { // Do something context.SaveChanges(); // Do something else context.SaveChanges(); scope.Complete(); }