2012-04-14 3 views
1

web.config에 명시된 명시 적 연결 문자열을 사용하여 DB 연결을 관리하기 위해 EF 코드 우선을 사용하고 있습니다. 하루에 테스트 트랜잭션을 삭제하는 것과 같은 DB 청소 프로세스를 예약하고 싶습니다. 따라서 인스턴스 간의 적절한 동시성 관리를 통해 Role.OnStart()에서 스레드를 생성합니다.Role.OnStart()에서 생성 된 스레드의 EF 사용

하지만 내 모델과 일치하지 않는 DB와 같은 DB 데이터베이스 예외가 발생합니다. 물론 앱 내부에서 사용 된 것과 동일한 코드가 사용됩니다. 그래서 내 생각 엔 web.config가 스레드에서 사용되지 않는다는 것입니다. 그래서 EF는 아마도 기본 연결 문자열을 사용합니다.

거기에서 내 연결 문자열을 사용하는 가장 좋은 방법은 무엇입니까?

감사

답변

4

ONSTART 방법은 그것의 Web.config를 사용하지 않는 의미 웹 응용 프로그램과 동일한 프로세스에서 실행되지 않습니다. 컨텍스트를 초기화 할 때 연결 문자열을 서비스 구성에 저장하고 여기에서 읽는 것이 좋습니다.

다른 장점은 응용 프로그램을 다시 배포하지 않고 설정을 변경한다는 것입니다.

+0

그래, 내가 (DbContext 생성자에서 DbContext 생성자를 호출하고 RoleEnvironment에서 가져온 connectionString을 전달하면 나머지 부분은 완전히 투명하게됩니다.) btw). 역할 프로세스에서 web.config를 사용하는 방법이 있는지 궁금합니다 ... 고마워요. – ThomasWeiss

관련 문제