1

这是一个远景,因为我通过谷歌搜索没有发现太多。

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

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

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();
        }
    }
}

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

4

0 回答 0