2009-06-01 9 views

답변

25

실제로 한 가지 방법이 있습니다.

connection.EnlistTransaction(Transaction.Current) 

그것은 작동하고 필요하지 않을 경우 분산에 거래를 촉진 나던 (반면에 어떤 문서를 말한다)

HTH

4

TransactionScope에 연결을 등록하려면 연결 문자열에 'Enlist=true'을 지정하고 해당 TransactionScope 개체의 범위에서 연결을 열어야합니다.

기존 연결에서 SqlConnection.BeginTransaction을 사용할 수 있습니다.

업데이트 : 당신은이 같은 BeginTransaction를 사용할 수 :

아니, 연결이 후 열어야합니다 :

using (SqlConnection connection = new SqlConnection(connectionString)) 
{ 
    connection.Open(); 

    SqlCommand command = connection.CreateCommand(); 
    SqlTransaction transaction; 

    // Start a local transaction. 
    transaction = connection.BeginTransaction("SampleTransaction"); 

    // Must assign both transaction object and connection 
    // to Command object for a pending local transaction 
    command.Connection = connection; 
    command.Transaction = transaction; 

    ... 
    ... 

} 
+0

것은이 연결이 TransactionScope에 인스턴스화 사전에 개방된다; 그러므로 내 질문에 대한 이유. –

+0

@Mitch, connection.BeginTransaction ("SampleTransaction")은 모든 시나리오에서 분산 트랜잭션 (DTC)으로 승격됩니까? 그렇다면 그 시나리오는 무엇입니까? – Baig

3

는 더 많은 연구 후, 내 질문에 대한 답이 밝혀졌다 TransactionScope 개체가 인스턴스화됩니다.

관련 문제