如果一个失败,如何回滚3个语句?

4th*_*ace 2 .net c# linq-to-sql

在C#中,我在一个将数据插入数据库的方法中有三个语句.第一个语句插入,我从中获取一个ID.此ID在接下来的两个语句中使用.

我有两个案件需要处理:

1.)如果不满足某些输入条件,则第二个语句可以返回false.在那种情况下,我想回滚第一个声明.
2.)如果任何一个语句产生错误,它们都应该回滚.

我想在事务范围中包装所有三个语句,但它只会回滚异常,这只涉及第二种情况.处理这两种情况的最佳方法是什么?

我通过带有LINQ 2 SQL的DBML使用DataContext

ale*_*exm 5

使用TransactionScope(),您需要调用Complete()方法来提交更改.此外,所有挂起的更改都将被回滚,因此您的(1)也会被覆盖