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();

等等

ADO.NET中的嵌套事务

您可以使用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()
}