public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) { try { await _dbContext.BeginTransactionAsync(); await next(); await _dbContext.CommitTransactionAsync(); } catch (Exception) { _dbContext.RollbackTransaction(); throw; } }
public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) { try { await _dbContext.BeginTransactionAsync(); var actionExecuted = await next(); if (actionExecuted.Exception != null && !actionExecuted.ExceptionHandled) { _dbContext.RollbackTransaction(); } else { await _dbContext.CommitTransactionAsync(); } } catch (Exception) { _dbContext.RollbackTransaction(); throw; } }