2012-11-07 6 views
1

raven db에 객체를 저장하는 웹 프로젝트가 있습니다. 단순성을 위해 클래스는 웹 프로젝트에 있습니다.다른 응용 프로그램에서 단일 RavenDB에 액세스

동일한 데이터베이스를 쿼리하고 정보를 추출해야하는 별도의 응용 프로그램 인 배치 작업이 있습니다.

웹 프로젝트의 속성과 동일한 속성을 가진 배치 작업 프로젝트의 클래스에 문서를 매핑하는 방법을 알려줄 수 있습니까?

필요한 경우 이러한 클래스로 공유 DLL을 만들 수 있습니다. 불필요한 번거 로움이 있습니다.

답변

1

비 직렬화 할 클래스의 구조가 부분적으로 데이터 구조와 일치하는 한 차이가 없어야합니다.

RavenDB 서버는 클라이언트에서 어떤 클래스를 사용하든 상관하지 않습니다. 다른 플랫폼을 목표로한다면 dll을 공유하거나 휴대용 dll을 공유 할 수 있습니다. 그러나 그것이 필요하지 않다는 것이 맞습니다.

그러나 Raven-Clr-Type 메타 데이터 값을 알고 있어야합니다. RavenDB 클라이언트는 원본 문서를 저장할 때이를 설정합니다. deserialization을 지원하기 위해 클라이언트가 다시 소비하지만 완전히 적용되지는 않습니다. 논리는 기본적으로 이것이다 : 나는 실제로 아직 테스트하지 않은 있지만

is there ClrType metadata? 
    if yes, do we have that type loaded in the current app domain? 
    if yes, then deserialize into that type 

if none of the above, then deserialize dynamically and cast into the type 
requested (basically, duck-typing) 

당신은 ... 내부 in the source code on github here.

+0

화려한 답변이 비트를 검토 할 수 있습니다 : – Nick

관련 문제