0
저는 EF6 및 EFContextProvider
과 함께 breeze를 사용하고 있습니다.Breeze를 사용하여 AfterSaveEntities에서 지연로드 사용
{ TransactionType = TransactionType.TransactionScope };
나는 AfterSaveEntities 위임하는 동안 쉽게 내 개체의 유효성을 확인하는 게으른 로딩을 사용하고 싶지만 그럴 수 없어 : 변경 사항을 저장에
나는 을 사용하고 있습니다.
설정하려고 시도하면 트랜잭션 중에 LazyLoadingEnabled = false
이 작동하지 않습니다.
엔티티는 필요할 때 관계를로드하지 않습니다.
그렇게 할 방법이 있습니까?
이것은 작동합니다. 하지만 SaveChanges 설정에서 TransactionScope를 사용하고 있기 때문에 동일한 트랜잭션에서 데이터베이스에 대한 다른 연결을 사용하고 있다고 생각합니다. 이것은 내 프로젝트가 경량 트랜잭션 대신 DTC를 사용한다는 것을 의미합니까? 현재 DBcontext를 현재 트랜잭션에 참여 시키려면 어떤 방법이 있습니까? –
"AfterSaveEntities 중 유효성 검사"란 무엇을 의미합니까? 저장 한 후 왜 유효성을 검사하겠습니까? 그리고 왜 트랜잭션 내부에서 유효성 검사를 신청합니까? 마지막으로, 기본 트랜잭션 설정을 변경하는 이유는 무엇입니까? 실제 저장 중에 만 발생하며 이전 및 이후 활동에서는 발생하지 않습니다. 데이터베이스 경계를 최소화하고 성능을 최대화 할 수 있도록 트랜잭션의 경계를 가능한 한 작고 짧게하고 싶습니다. – Ward
설명서의 [ContextProvider 도우미 메서드] (http://www.getbreezenow.com/documentation/contextprovider#ContextProviderMethods) 부분에서 설명한 것처럼 동일한 연결을 사용하여 두 번째 컨텍스트를 만들 수 있습니다. [이 SO 응답] (http://stackoverflow.com/questions/17901261/how-should-i-create-secondary-dbcontext-using-contextprovider-entityconnection/17917284#17917284)은 추가 지침을 제공합니다. –