SqlCeローカルデータベースと対話するWinFormsアプリケーションがあります。 BindingSources、TableAdapters、および型付きデータセットを使用してDB操作を管理しています。トランザクションで実行する必要がある2つの異なるクラスにいくつかのメソッドが散在していて、System.Transactions.TransactionまたはCommitableTransactionを使用することを考えていました。私の質問は、トランザクションやCommittableTransactionをこのサンプルコードではエラーでトランザクションやロールバックで正常に動作します、であるか、私は、あまりにもOtherClass方法でトランザクションを使用しなければならないの?:型付きデータセットとSQL Server CEとのトランザクション
OtherClass othercls = new OtherClass();
...
private void DoAll()
{
/* begin transaction here */
this.tableAdapter.DoSomeDBWork();
othercls.DeleteSomeRecords(); //uses tableadapter+sql code to delete. throws exception on error. doesn't have transaction
othercls.DeletOtherRecords(); //uses tableAdapter.Rows.Find(id).Delete(). throws exception on error. doesn't have transaction
othercls.Update(); //uses tableadapter.Update(). throws exception on error. doesn't have transaction
this.DeleteSomeFiles(); //throws exception on fail
/* end transaction here */
}