У меня есть некоторый производственный код, который работал несколько лет и только что начал сталкиваться с ошибками на прошлой неделе.Ошибки возникают только с конкретным процессом, который вставляет кучу информации в базу данных.
Я получаю сообщение об ошибке: «Эта SqlTransaction завершена; она больше не может использоваться», которая говорит мне, что транзакция либо фиксируется, либо выполняется откат между первым SubmitChanges и вторым SubmitChanges.
В основном код выглядит следующим образом:
WithTransaction(db => {
// Do a bunch of stuff - insert, update objects
db.SubmitChanges();
// Do a bunch more stuff
db.SubmitChanges(); // <-- This line is throwing the error.
});
Код для WithTransaction просто открывает транзакцию, выполняет указанное действие, а затем закрывает транзакцию в блоке finally.(Существует также некоторая обработка ошибок, но это не относится к этой проблеме.
SubmitChanges - это просто оболочка для System.Data.Linq.DataContext.SubmitChanges ()
Моя гипотеза состоит в том, что что-точто-то пошло не так в первом методе SubmitChanges (), который вызывает откат транзакции, но не выдает ошибку, поэтому мне интересно, есть ли хороший способ для меня отладить более ранние SubmitChanges и посмотреть, не происходит ли что-то там неправильно.
Или, альтернативно, любые другие идеи о том, как отладить эту ошибку.