グーグルであまり見つけられなかったので、ここでロングショット。
WebAPI プロジェクトで EF を使用して作業単位とリポジトリ パターンを使用し、IoC を管理するために Ninject を使用しています。複数のファイルのアップロードを処理するために、ファイルの処理には機能しますが、DB に保存しない非同期メソッドがあります。
問題は、ファイルを引き出すために await が呼び出されたときに OnActionExecuted の Unit of Work フィルターが起動することです。
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();
}
}
}
この効果を補うためにアプローチを改善または調整する方法はありますか? どんな提案でも大歓迎です!