Узнал про прикольный класс System.Transactions.TransactionScope.
Кусок кода исполняется как единая транзакция.
Использовать как-то так:
-
using (TransactionScope ts = new TransactionScope())
-
{
-
// Удаляем старые ответы
-
AnswerUtility.Delete(id, UserUtility.CurrentUserName);
-
// запоминаем в БД ответы пользователя
-
AnswerUtility.SaveAnswerToDB(answers);
-
-
// завершение транзакции
-
ts.Complete();
-
}
Прекрасно работает с SQL to LINQ.