2012-11-07 32 views
1

我有一個Web對象存儲在raven數據庫中的項目。爲了簡單起見,這些類都存在於Web項目中。從不同的應用程序訪問單個RavenDB

我現在有一個批處理作業,它是一個單獨的應用程序,需要查詢相同的數據庫並從中提取信息。

有沒有一種方法可以告訴烏鴉將文檔映射到批處理作業項目中具有與Web項目中相同屬性的類。

如果需要的話,我可以創建一個只有這些類的共享DLL。似乎沒有必要的麻煩雖然

回答

1

只要您反序列化的類的結構部分匹配數據的結構,它應該沒有區別。

RavenDB服務器根本不關心你在客戶端使用什麼類。你當然可以共享一個DLL,甚至可以共享一個可移植的DLL,如果你的目標是一個不同的平臺。但你是正確的,這是沒有必要的。

但是,您應該知道Raven-Clr-Type元數據值。 RavenDB客戶端在存儲原始文檔時進行設置。它被客戶用來協助反序列化,但並未完全執行。邏輯基本上是這樣的:

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

相關問題