Я пытаюсь зафиксировать транзакцию в моей базе данных Sql Server 2008 - сначала 2 вставки, а затем пара обновлений, однако, как только она пытается выполнить первое из обновлений, я получаю следующую ошибку:
ExecuteNonQuery требует, чтобы команда имела транзакцию, когда
соединение, назначенное команде, находится в ожидающей локальной транзакции.
Свойство Transaction команды не было инициализировано.
Вот код, слегка отредактированный для краткости:
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 вставки работают нормально, но как только он пытается выполнить одно из обновлений, радости нет.