如果我们使用客户端启动的Ado.Net事务,那么当我们在事务正在进行时尝试执行不属于当前事务的命令时,我们将收到错误。那是为什么?
感谢名单
答案 0 :(得分:1)
您无法执行“不属于当前事务”的命令。启动SqlTransaction后,执行了BEGIN TRANSACITON语句,服务器已在事务中调用了会话。任何在同一会话上发表的新声明都将成为交易的一部分。 ADO.Net SqlClient通过要求您将正确的SqlTransaction分配给SqlCommand来强制执行此操作。
如果需要在当前事务之外执行语句,则需要获取与数据库的新连接并在其上执行语句。
顺便说一下,你说ADO.Net交易和我的工作,它.Net System.Transactions组件有一些不同的行为。