Sql Server 2008 データベースにトランザクションをコミットしようとしています。最初に 2 つの挿入に続いて 2 つの更新が行われますが、最初の更新を実行しようとするとすぐに、次のエラーが発生します。
ExecuteNonQuery では、コマンドに割り当てられた接続が保留中のローカル トランザクションにある場合、コマンドにトランザクションが必要です。コマンドのトランザクション プロパティが初期化されていません。
簡潔にするために少し編集したコードを次に示します。
using (_cn)
{
_cn.Open();
IDbTransaction transaction = _cn.BeginTransaction();
topicId = (int)_cn.Query<decimal>(qAddTopic, new { pForumId = topic.ForumId }, transaction).Single();
postId = (int)_cn.Query<decimal>(qAddPost, new { pTopicId = topicId }, transaction).Single();
_cn.Execute(qUpdateForums, new { pLastPostId = postId });
_cn.Execute((qUpdateSiteTotals));
transaction.Commit();
}
最初の 2 つの挿入は正常に機能しますが、更新の 1 つを実行しようとするとすぐに喜びがありません。