TransactionScope с типизированным набором данных

Можно ли использовать TransactionScope с типизированным набором данных?

как в:

using (var transaction = new TransactionScope())
{
    typedDataSet.DeleteStuff(id);

    typedDataSet2.DeleteSomeOtherStuff(id2);

    transaction.Complete();
}

Будут ли запросы sql, относящиеся к DeleteStuff(id) и DeleteSomeOtherStuff(id), фактически быть транзакционными, если выдается ошибка?

Я прочитал эту статью Богдана Чернячука об использовании транзакций со строго типизированными наборами данных, и я надеюсь, что мне не придется делать это таким образом.

1 ответ

Решение

Краткий ответ: да, это транзакционный.

Испытывать тоже было не сложно. Я выдал исключение перед самой транзакцией. Данные не были удалены из базы данных.

using (var transaction = new TransactionScope())
{
    typedDataSet.DeleteStuff(id);

    typedDataSet2.DeleteSomeOtherStuff(id2);
    throw new NullReferenceException();
    transaction.Complete();
}

Как ни странно, я рассказал о том, что происходило в БД, с помощью SQL SERVER Profiler, а хранимые процедуры, на которые ссылался набранный набор данных, были выполнены на сервере. Однако данные были как-то откатаны.

Другие вопросы по тегам