Database.BeginTransaction 대 Transactions.TransactionScope
System.Transactions.TransactionScope
과 EF6의 차이점은 무엇입니까 Database.BeginTransaction
?
누군가가 작은 예를 들어 주거나 분명한 차이가있을 때 사용할 것을 설명 할 수 있습니까?
추신 : 내 프로젝트에서는 EF6를 사용하고 있습니다. 나는 이미 문서를 읽었지만 그다지 도움이되지 않았습니다. 또한 예제를 찾았지만 오히려 사용 SqlConnection.BeginTransaction
하고 있으며 이제 MS는 Database.BeginTransaction
EF6 에서이 새로운 것을 도입했습니다 .
Entity Framework 6의 설명서에서 답을 찾았습니다.
EF6의 도입으로 Microsoft는 새로운 API 메서드 Database.BeginTransaction()
및 Database.UseTransaction()
. System.Transactions.TransactionScope
여전히 잘 지원 되지만 대부분의 EF6 사용자에게는 더 이상 필요 하지 않습니다 .
반면 Database.BeginTransaction()
데이터베이스 관련 작업 트랜잭션에만 사용되며 System.Transactions.TransactionScope
, 그 외에도 '일반 C # 코드'도 트랜잭션이 될 수 있습니다.
따라서 Database.BeginTransaction()
EF6의 트랜잭션에서 db 관련 작업 만 수행하는 경우에만 사용 하고 그렇지 않으면 트랜잭션에서 System.Transactions.TransactionScope
db 작업과 C # 코드를 함께 사용합니다.
여전히 TransactionScope
접근 방식을 선호하는 사람들 은 특히 클라우드 시나리오에서 제한 사항을 확인하는 것이 좋습니다 (클라우드 시나리오는 분산 트랜잭션을 지원하지 않음).
'IT TIP' 카테고리의 다른 글
이메일 주소에 다국어 (영어가 아닌) 문자가 포함될 수 있습니까? (0) | 2020.10.19 |
---|---|
연관 테이블을 사용하는 것보다 플래그를 비트 마스크로 저장하는 것이 언제 더 낫습니까? (0) | 2020.10.19 |
Subversion 저장소 버전을 찾는 방법은 무엇입니까? (0) | 2020.10.19 |
함수 템플릿을 부분적으로 전문화 할 수없는 이유는 무엇입니까? (0) | 2020.10.19 |
HashSet에서 실제 항목을 검색하는 방법 (0) | 2020.10.19 |