public async Task InTransactionAsync(Func <Task> taskAction) { // Short circuit if (taskAction == null) { return; } try { using (var scope = new TransactionScope(TransactionScopeOption.Required, options, TransactionScopeAsyncFlowOption.Enabled)) { await taskAction(); scope.Complete(); } } catch (EntityException e) { if (ConflictingTransactionException.Matches(e)) { throw new ConflictingTransactionException(e); } throw; } }
public void InTransaction(Action action) { try { using (var scope = new TransactionScope(TransactionScopeOption.Required, options)) { action(); scope.Complete(); } } catch (EntityException e) { if (ConflictingTransactionException.Matches(e)) { throw new ConflictingTransactionException(e); } else { throw; } } }