У меня есть приложение WinForm, которое использует SqlServer CE 3.5 в качестве базы данных. Я использую типизированные запросы к наборам данных для операций с БД. Мне нужно использовать транзакции для этой операции. Проблема в том, что они разбросаны по разным сборкам. У меня вопрос, что я должен использовать для запуска всех из них в одной транзакции? Вот пример операции:
//transaction should start here
this.QueryDb();
MyOtherAssembly.myClass.QueryDbForSomethingElse();
System.IO.File.Delete(fileName);
//end transaction
Я думаю об использовании TransactionScope
но сработает ли это в этой ситуации? Я имею в виду QueryDbForSomethingElse()
откат, если File.Delete()
потерпит неудачу? Должен ли я передать Transaction.Current
или Transaction.Current.DependentClone(DependentCloneOption.BlockCommitUntilComplete)
в качестве параметра и создать новую транзакцию, используя переданный параметр?
Буду признателен за любые идеи по этому поводу.