C# 基于筛选器的UnitOfWork在WebAPI上不使用异步方法(文件上载)

C# 基于筛选器的UnitOfWork在WebAPI上不使用异步方法(文件上载),c#,asp.net,asynchronous,asp.net-web-api,C#,Asp.net,Asynchronous,Asp.net Web Api,我在谷歌上找不到太多的东西 我在WebAPI项目中使用工作单元和存储库模式与EF,并使用Ninject管理IoC。为了处理多个文件上传,我有一个异步方法,虽然它可以处理文件,但不会保存到数据库 问题似乎是OnActionExecuted的工作单元过滤器在调用Wait以取出文件时会触发 var files=await_fileHandler.SaveMultipartStream() 有什么想法可以改进或调整我的方法来补偿这种影响吗?欢迎任何建议 也许是这样的? public class Unit

我在谷歌上找不到太多的东西

我在WebAPI项目中使用工作单元和存储库模式与EF,并使用Ninject管理IoC。为了处理多个文件上传,我有一个异步方法,虽然它可以处理文件,但不会保存到数据库

问题似乎是OnActionExecuted的工作单元过滤器在调用Wait以取出文件时会触发

var files=await_fileHandler.SaveMultipartStream()

有什么想法可以改进或调整我的方法来补偿这种影响吗?欢迎任何建议

也许是这样的?
public class UnitOfWorkCommitAttribute : ActionFilterAttribute
{
    private IUnitOfWork _uow;

    public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
    {
        _uow = actionExecutedContext.Request.GetDependencyScope().GetService(typeof(IUnitOfWork)) as IUnitOfWork;

        if (actionExecutedContext.Exception == null)
        {
            _uow.Commit();
        }
    }
}