나는 MS-DTC가 나는 TransactionScope에 내에서 하나 개 이상의 연결이MSDTC 및 격리 수준
1) (격리 수준 아래에 주어진 시나리오에서 동작하는 방법을 몇 가지 설명이 필요
a) MS-DTC는 격리 수준을 SERIALIZABLE로 자동 변경합니다.
b) (Imp) 위의 대답이 예이고 Row 버전 기반 격리 수준 (예 : TransactionScope)을 구현 한 경우 READ_COMMITTED_SNAPSHOT 데이터베이스 옵션을 "사용"으로 설정 했으므로 유효하게 유지됩니다 "직렬화 가능"격리 수준.
void OuterMethod() {
TransactionOptions tso = new TransactionOptions();
tso.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
using (TransactionScope tx = new TransactionScope(TransactionScopeOption.RequiresNew, tso)) {
InnerMethod("select * from testtable");
InnerMethod("update testtable set col1 = N'new value'");
tx.Complete();
}
}
static void InnerMethod(string sqlText) {
using (SqlConnection conn = SqlConnection(connStr)) {
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.ExecuteNonQuery();
}
}
감사
자세한 내용은 다른 답변 – Buzz