从不同的应用程序访问单个RavenDB

时间:2012-11-07 13:21:03

标签: ravendb

我有一个在raven db中存储对象的Web项目。为简单起见,这些类存在于Web项目中。

我现在有一个批处理作业,它是一个单独的应用程序,需要查询同一个数据库并从中提取信息。

有没有办法告诉乌鸦将文档映射到批处理作业项目中与Web项目具有相同属性的类。

如果需要,我可以用这些类创建一个共享的dll。似乎没必要麻烦

1 个答案:

答案 0 :(得分: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.

的这一部分
相关问题