EF 4.3 코드 우선 (EF) 저장소와 일반 SqlCommand (SQLCMD)를 사용하는 다른 리포지토리가 있습니다. EF는 SQLCMD에 연결 개체를 전달하므로 둘 다 동일한 연결을 사용합니다.Entity Framework, SqlCommand 및 TransactionScope
EF에서는 엔티티를 만들고 엔티티 ID를 사용하여 SQLCMD로 다른 작업을 수행합니다. 물론 엔티티가 존재해야합니다. 그렇지 않으면 FK 오류가 발생합니다. 잘 작동하지만 두 트랜잭션을 같은 트랜잭션으로 유지해야하므로 잘못되었을 경우 두 트랜잭션이 모두 롤백됩니다.
둘 다 동일한 TransactionScope에서 랩핑하면 작동하지 않습니다. SQLCMD는 EF으로 생성 된 엔티티를 볼 수 없습니다. 그러나 TransactionScope를 제거하면 다시 작동합니다. 오류는 항상 동일합니다. 잘못된 FK에 대한 SQL 오류입니다.
내 컴퓨터에서 MSDTC를 활성화하려고했지만 여전히 작동하지 않습니다. 두 가지 모두 동일한 연결을 사용하기 때문에 이것이 문제가되지는 않습니다.
나는 EF가 사용 후 연결을 닫음을 알아 차렸으므로 SQLCMD가 그것을 얻었을 때 다시 열어야한다. 이것이 문제일까요?
이 윈도우 7 64 Ultimate 및 SQLSERVER 2008 년
문제는 무엇입니까? 감사!
편집 : 나는 SQLCMD에서 작업을 사용하고 있음을
은 분명히 문제가있다. 그것은 하나가 아니며 체인에 연속되어 있습니다. TransactionDependantClone을 사용하여이 문제에 접근하는 방법을 모릅니다.