事务具有“原子性”,即要么全部成功,要么全部失败。
这里记录用TransactionScope来实现分布式事务
步骤:
第一步:在服务中开启MSDTC(Distributed Transaction Coordinator),注意在调用ADO.NET的客户端和数据库服务器端都需要开启。
第二步:在项目中添加对System.Transactions的引用,然后将数据库操作的代码放在如下位置即可
using(TransactionScope ts=new TransactionScope ())
{
//...
//数据库操作一...
//数据库操作二...
//...
ts.Complete();
}
TransactionScope也可以实现嵌套事务,也就是A调用B,B中声明了TransactionScope,A中也声明了TransactionScope,这样如果B没错,但是A中调完了B后出错了,则B中的数据库操作也回滚。
浙公网安备 33010602011771号