SqlCe ローカル データベースと対話する WinForms アプリケーションがあります。BindingSources、TableAdapters、および型指定されたデータセットを使用してデータベース操作を管理します。トランザクションで実行する必要がある 2 つの異なるクラスのいくつかのメソッドにいくつかの操作が分散しており、System.Transactions.Transaction または CommitableTransaction を使用することを考えていました。私の質問は、Transaction または CommittableTransaction がトランザクションで正常に機能し、このサンプル コードのエラーでロールバックするか、それとも OtherClassメソッドでもトランザクションを使用する必要があるかということです。
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 */
}