2012-03-23 3 views
8

System.Transactions.TransactionScope을 사용하고 격리 수준을 지정하지 않으면 기본값은 Serializable입니다. 그러나 트랜잭션 범위를 사용하지 않고 구식 테이블 어댑터를 사용하고 있다면 어떻게해야합니까? 그러면 기본 격리 수준은 무엇입니까?기본 ADO.NET 격리 수준이란 무엇입니까?

미리 감사드립니다.

+5

그것은 더 복잡하다; 격리 수준은 풀링 된 연결 사용간에 다시 설정되지 않으므로 "기본 연결의 마지막 사용이 수행 한 작업"에 따라 달라집니다. –

+0

@MarcGravell 네, 정말 고마워요. 내 동료가 나에게 똑같은 언급을하는 링크를 보냈다. 정확하게 성공의 구덩이가 아니며 .NET을 사용하여 7 년 동안 어떻게 알아 차리지 못했는지 알 수는 없습니다 ... –

+0

"기본값 기본값"은 아마도 커밋 된 것으로 읽혀집니다. –

답변

3

응용 프로그램 데이터 작업에 절대적이어야하는 경우 기본값을 사용하지 않을 수도 있습니다. 이러한 것들은 프레임 워크 버전간에 변경 될 수 있습니다.

TransactionScope (상황에 따라 DTC로 에스컬레이션 될 수도 있음) 또는 대상 저장 프로 시저 호출 (명시된 경로를 사용하는 경우) 내에서 명시 적으로 모든 데이터 호출에 대해 격리 수준 및 세션 설정을 지정하는 것이 좋습니다. DTC/TransactionScope에에

자세한 내용 : https://stackoverflow.com/a/9075800/1568341

TL; DR

A : SQL ((•))을 위해 최선을 다하고 읽을 수 있지만 에 기본을 가정하지 마십시오