这是一个远景,因为我没有通过谷歌搜索找到太多。
我在WebAPI项目中使用工作单元和存储库模式,使用Ninject来管理IoC。为了处理多个文件上传,我有一个异步方法,虽然它确实可以处理文件,但不会保存到数据库。
问题似乎是当调用await来拉出文件时,OnActionExecuted的工作单元过滤器会触发。
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();
}
}
}
我有什么想法可以改进或调整我的方法以弥补这种影响?欢迎任何建议!