2012-04-04 4 views
3

저는 여러 프로젝트와 솔루션에서 RavenDb를 사용하여 동일한 제품에 속한 세 가지 데이터베이스에 액세스하고 있습니다. 예를 들어, id 오버라이드에 '-'를 사용하여 '웹'중심 데이터베이스와 '백엔드'데이터베이스에서 사용자 정보와 일부 데이터를 가져 오는 MVC 프로젝트가 여러 개 있습니다 (그러나이 클래스는 하위 클래스 집합에 대해서만 필요합니다. '웹'DB). 그리고 서비스 (MVC 프로젝트는 물론)에서 사용되는 또 다른 '백엔드'데이터베이스를 가지고 있습니다. 마지막으로 백엔드 db를 구축하기 위해 다른 서비스 세트에서 사용하는 세 번째 temp/scratch 데이터베이스. 그리고 물론이 모든 것들은 다른 클래스 라이브러리, 심지어 콘솔 테스트, 시드 및 통합 테스트 애플 리케이션에서도 액세스 할 수 있습니다.RavenDb 구성 및 DocumentStore 추상화?

이 모든 것을 관리하는 것은 상당히 번거롭고 있습니다. db에 액세스 할 수있는 새로운 콘솔 응용 프로그램이나 클래스 라이브러리를 만들 때마다 각 프로젝트에 대한 구성 및 까마귀 패키지를 설치하고 인덱스가 만들어 졌는지 확인해야합니다. 모든 누젠트 업데이트에 대한 업데이트를 실행하는 것은 물론, 제 경우에는 서버/클라이언트 바이너리의 새로운 불안정 버전을 설치하십시오.

더 쉬운 방법이 있나요?

DocumentStore 생성 및 초기화를 추상화하고 색인 생성을 자체 프로젝트 및 참조로 추상화하려고했습니다. 그러나 다른 프로젝트에서는 패키지 디렉토리에 newtonsoft.json (및 nlog)을 수동으로 추가해야했습니다.

또한 정적 속성이있는 클래스로 DocumentStore를 추상화하려고하면 다음과 같은 메시지가 표시됩니다. 보관되지 않은 문서 저장소의 StackTrace가 기록됩니다. 테스트에서 경쟁 조건을 피하기 위해 모든 문서 저장소를 테스트에 배치하십시오.

누구든지 이러한 문제를 해결하기 위해 어떤 생각을 갖고 계십니까?

감사

+0

여전히 문제가 있습니까? Raven 2.0 클라이언트는 newtonsoft.json과 nlog에 의존하지 않습니다. –

답변

-2

나는 참조 설명서 또한 큰 문제라고 생각하지 않지만, 당신은뿐만 아니라 실제 nuget 참조를 추가 할 수 있습니다. DocumentStore not dropped 오류는 불안정한 (디버그 빌드)에서만 발생하며 릴리스 빌드에서는 발생하지 않습니다.