我有一个使用SqlServer CE 3.5作为数据库的WinForm应用程序。我使用类型化数据集查询进行数据库操作。我需要为此操作使用事务。问题是,它们分散在不同的程序集中。我的问题是,我应该如何在单个事务中运行它们?这里有一个示例操作:传递当前事务或使用DependentClone?
//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)
作为参数,并使用传递的参数在那里创建新的事务?
我很感激这方面的任何想法。
谢谢。 我应该更清楚,并补充说我不需要事务性文件删除,我的操作不是多线程.. – dstr 2009-06-25 09:50:12