/// <inheritdoc /> public override void OnActionExecuting(ActionExecutingContext actionContext) { var serviceProvider = actionContext.HttpContext.RequestServices; var validationBag = serviceProvider.GetService <ValidationBag>(); var transactionTimeoutInSeconds = actionContext.GetTimeoutSettingsForOperation(10); var transactionScope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted, Timeout = TimeSpan.FromSeconds(transactionTimeoutInSeconds) }, TransactionScopeAsyncFlowOption.Enabled); actionContext.HttpContext.Items.Add("TransactionActionFilter.Transaction", transactionScope); base.OnActionExecuting(actionContext); }