我有几个方法被顺序调用,它们都按顺序执行MySQL数据库查询:
UpdateInvoice() - > UpdateOrderItems(connection)
|---------- > UpdateGrandTotal(connection)
|---------- > UpdateAdvances(connection)
我有一个用于连接和交易的使用块,如下所示:
using (var connection = ConnectionManager.GetConnection()){
using (var transaction = connection.BeginTransaction(){
UpdateOrderItems(connection)
UpdateGrandTotal(connection)
UpdateAdvances(connection)
}
}
我的问题是,一旦我从connection.BeginTransaction()创建了一个事务,我是否需要传递事务对象以使其以原子方式工作?根据我的知识,因为在连接时调用了BeginTransaction(),它处于事务模式,并且单个连接一次只能有一个事务。
我错了吗?
P.S。我正在使用dapper在这些方法中执行查询
答案 0 :(得分:0)
每个连接只能有1个事务(如果您想知道,无论IsolationLevel如何)。但是,您可以使用System.Transactions.TransactionScope嵌套多个事务。
我希望这能有所启发。