1

データベース内のテーブルにトリガーがあるため、トランザクションおよびセッション スコープ内にある in メソッド create に問題があります。なにか提案を?

これは私が得るエラーです:

トランザクションを破棄しようとしたときにエラーが発生しました
説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。

例外の詳細: System.Exception: トランザクションを破棄しようとしたときにエラーが発生しました

オブス。

トリガーを削除すると、エラーは発生しません。

コード:

using (var session = new SessionScope())
{
   try
   {
      using (Transaction = new TransactionScope(TransactionMode.New,  OnDispose.Commit))
      {
        class.Create();
      }
      Transaction.VoteCommit();
   }
   catch (Exception ex)
   {
      Transaction.VoteRollBack();
      throw new Exception(ex.Message);
   }
}
4

1 に答える 1

1

問題は using ステートメントの位置だったと思います:

using (var session = new SessionScope())
{
    using (Transaction = new TransactionScope(TransactionMode.New,  OnDispose.Commit))
    {
        try
        {
            class.Create();
            Transaction.VoteCommit();
        }
        catch (Exception ex)
        {
            Transaction.VoteRollBack();
            throw new Exception(ex.Message);
        }
    }
}

Commit または Rollback を呼び出す前に、Transaction を破棄します。

于 2013-08-12T17:30:48.500 に答える