を開始するカスタム ActionFilterAttribute を使用していますNHibernate Session.Transaction
。
ActionExceutedContext
トランザクションコミットの実行を回避し、代わりにロールバックを呼び出すために、いつ例外がアクションで処理されるのか、どうすればそれを取得できるのか疑問に思っていました。例外が処理されない場合は正常に機能します。処理されたもののための方法が必要です。例外を処理するすべての場所で、ロールバックを書きたくありません。
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
_transactionHelper.BeginTransaction();
base.OnActionExecuting(filterContext);
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
if (filterContext.Exception == null)
_transactionHelper.Commit();
base.OnActionExecuted(filterContext);
}