这是一个远景,因为我通过谷歌搜索没有发现太多。
我在 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();
}
}
}
有什么想法可以改进或调整我的方法以弥补这种影响吗?欢迎任何建议!