Я пытаюсь выполнить sql внутри транзакции с помощью ServiceStack OrmLite. Код ниже работает с Sqlite, но не с SqlServer. С SqlServer я получаю следующую ошибку:ServiceStack OrmLite и транзакции
ExecuteScalar требует, чтобы команда имела транзакцию, когда соединение, назначенное команде, находится в ожидающей локальной транзакции. Свойство Transaction команды не инициализировано.
С кодом что-то не так?
using (var trans = Db.BeginTransaction())
{
try
{
foreach (myObject in myObjects)
Db.Insert<MyObject>(myObject);
trans.Commit();
}
catch (Exception ex)
{
trans.Rollback();
throw ex;
}
}
Потому что я не мог найти 'OpenTransaction' в текущем исходном коде и у него не было времени попробовать код. Какую версию вы используете? –
Справа вам нужно использовать 'db.OpenTransaction()', примеры на [домашней странице OrmLite] (https://github.com/ServiceStack/ServiceStack.OrmLite#transaction-support). – mythz