2012-01-03 2 views
1

DTC를 반복하지 않고 다른 연결간에 트랜잭션을 재사용 할 수있는 방법이 있습니까? 이 작업을 수행하는 방법을 알 수 없습니다.Entity Framework 4.1, DBContext, 연결간에 트랜잭션을 다시 사용하는 방법

using (TransactionScope ... 
{ 
    using (var db1 = new modelXEntities()) 
    { 
     db1.Database.Connection.EnlistTransaction(Transaction.Current); ??? 
     db1.SaveChanges(); ==>error 

     using (var db2 = new modelYEntities()) 
     { 
      db2.Database.Connection.EnlistTransaction(Transaction.Current); ???  
      db2.SaveChanges(); ==>error 

오류 : 기본 공급자가 ... 열기에

감사에 실패했습니다.

답변

1

여러 연결에 대해 단일 트랜잭션을 사용하려면 분산 트랜잭션 = MSDTC를 사용해야합니다. 그 이유는 여러 트랜잭션 리소스간에 트랜잭션을 조정하려면 특별한 처리 (2 단계 커밋)가 필요하기 때문입니다. 모든 트랜잭션 리소스는 트랜잭션을 조정하는 별도의 프로세스와 통신해야합니다. 이것이 바로 MSDTC (MS Distributed Transaction Coordinator)가 제공하는 것입니다.

관련 문제