BeginTransaction () 후 IDbConnection 전달

c# dapper mysql transactions

문제

순차적으로 호출되는 몇 가지 메소드가 있으며, 모두 순차적으로 쿼리를 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 ()은 연결시 호출 되었기 때문에 트랜잭션 모드에 있으며 단일 연결은 한 번에 하나의 트랜잭션 만 가질 수 있습니다.

뭔가 잘못 됐어?

추신 : 나는 이러한 메서드 내부에서 쿼리를 실행하는 데 사용하고 있습니다.

인기 답변

궁금한 사항이 있으면 IsolationLevel과 관계없이 연결 당 트랜잭션이 하나만있을 수 있습니다. 그러나 System.Transactions.TransactionScope를 사용하여 여러 트랜잭션을 중첩 할 수 있습니다.

나는 이것이이 빛을 비춰주기를 희망한다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow