내 프로젝트 (웹 응용 프로그램)에서 DI 용 Autofac을 사용하고 있습니다. 이 같은 동일한 DB 뭔가에 2 개 개의 다른 테이블을 조인 LINQ 표현이 (모든() dbSet.AsQueryable 이상 단지 래퍼를()) 내가 내 구성 요소 (repo1 및 repo2)를 등록하고Autofac을 사용하여 InstancePerRequest와 다른 컨텍스트
from repo1 in repository1.All()
join repo2 in repository2.All()
on repo1.SomeField = repo2.SomeField
.....
을 InstancePerRequest()를 가진 컨테이너 빌더.
코드를 실행할 때 LINQ 코드에서 다음 오류가 발생합니다. "지정된 LINQ 식에 다른 컨텍스트와 연결된 쿼리에 대한 참조가 포함되어 있습니다."
나는 dbContext가 InstancePerRequest()를 통해 등록 된 구성 요소를 통해 (요청마다) 공유된다고 생각했습니다.
생각하십니까?
감사합니다.
dbContext는 어떻게 생성되고 있습니까? autofac을 통해 등록되어 있습니까? 그렇다면 어떻게 등록됩니까? –
웹 응용 프로그램이라고 할 때 어떤 유형을 의미합니까? 이 WebApi, WCF, MVC입니까? 애플리케이션 유형에 맞는 autofac 통합 라이브러리를 사용하고 있습니까? –
"저장소"생성자를 표시하지 않습니다. 제대로 작동하게하려면'DbContext'를'PerRequest'로 등록하고 "저장소"가 생성자 매개 변수로 주입되도록해야합니다. 그럼 그냥 작동합니다. –