2010-05-31 2 views

답변

2

하여 TransactionScope가 implicit transaction 생성 catch(){rollback;}와 SqlTransaction을 사용하는 것과 같은 일이 될 것입니다을 따라서 트랜잭션 처리를 지원하는 트랜잭션 범위 내에서 조치, 해당 거래 관리자가 처리합니다.

데이터베이스 처리의 경우 SqlTransaction이 사용됩니다. 그래서 네, 주어진 코드는 SqlTransaction을 사용하여 수동으로 수행 할 것입니다.


transaction.Current으로 전화하여 현재 트랜잭션 관리자에게 처리기를 가져올 수 있습니다.

하나의 TransactionScope 개체는 암시 적 트랜잭션 유형을 가질 수 있으므로 TransactionScope 개체를 중첩시켜 여러 관리자에게 트랜잭션 처리를 보장해야합니다. 예 :

using(var ts = new TransactionScope) 
{ 
     using(var db = new TransactionScope) 
     { 
     //do db processing 
     } 
     using(var msmq = new TransactionScope) 
     { 
     //do msmq processing 
     } 
     ts.Complete(); 
} 
관련 문제