TransactionScope 可以让代码块成为事务性代码块。
当发生异常时,会自动回滚。后期手动提交事务。
简单的例子:
using (TransactionScope ts = new TransactionScope())
{
//在事务代码块中,只要发生异常,都会进行回滚操作
service.Add(model);
throw new ArgumentException("这只是测试事务回滚的代码段");
ts.Complete();
}
service.Add 是我的一个添加数据操作。
当我添加数据后,抛出异常。那么会自动进行回滚。所以添加的数据,不会记录到数据库上。