SqlServer CE 3.5를 데이터베이스로 사용하는 WinForm 응용 프로그램이 있습니다. 필자는 db 작업을 위해 형식화 된 데이터 집합 쿼리를 사용합니다. 이 작업에 트랜잭션을 사용해야합니다. 문제는 서로 다른 어셈블리에 흩어져 있다는 것입니다. 내 질문은 단일 트랜잭션에서 모든 항목을 실행하려면 무엇을 사용해야합니까?현재 트랜잭션을 전달하거나 DependentClone을 사용 하시겠습니까?
//transaction should start here
this.QueryDb();
MyOtherAssembly.myClass.QueryDbForSomethingElse();
System.IO.File.Delete(fileName);
//end transaction
내가 TransactionScope
를 사용하여 생각하고 있지만,이 상황에서 일하는 것이 예를 들면 다음과 같습니다 조작입니까? File.Delete()
이 실패하면 QueryDbForSomethingElse()
롤백을 의미합니까? Transaction.Current
또는 Transaction.Current.DependentClone(DependentCloneOption.BlockCommitUntilComplete)
을 매개 변수로 전달해야하며 전달 된 매개 변수를 사용하여 새 트랜잭션을 생성해야합니까?
이 문제에 대한 의견을 보내 주시면 감사하겠습니다.
감사합니다. 내가 명확해야하고 트랜잭션 파일을 삭제할 필요가 없으며 작업이 멀티 스레드가 아니어야한다고 덧붙였습니다. – dstr