ADO.NET中的嵌套事务
本文关键字:嵌套事务 NET ADO | 更新日期: 2023-09-27 18:29:11
首先,ADO.Net上是否可以有n个事务级别。其次,这种用法正确吗?
var tx = cx.BeginTransaction();
cx.Execute("insert into atable(id) values(123123)");
var tx2=tx.BeginTransaction();
cx.Execute("insert into atable(id) values(123127)");
tx2.Commit();
tx.Commit();
等等
您可以使用TransactionScope
嵌套事务,但是,只有在最外层的事务被提交后,它们才会被提交。
如果其中任何一个将回滚,则它们都将回滚。
在使用方面,您应该将事务创建封装在using
语句中,以确保正确的处理。
using(var tx1 = new TransactionScope())
{
cx.Execute("insert into atable(id) values(123123)");
using(var tx2 = new TransactionScope())
{
cx.Execute("insert into atable(id) values(123127)");
tx2.Complete();
}
tx1.Complete()
}