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

从不同的应用程序访问单个RavenDB,ravendb,Ravendb,我有一个在raven db中存储对象的web项目。为简单起见,这些类位于web项目中 我现在有一个批处理作业,它是一个单独的应用程序,需要查询同一个数据库并从中提取信息 是否有一种方法可以让raven将文档映射到批处理作业项目中与web项目中的类具有相同属性的类 如果需要的话,我可以创建一个只包含这些类的共享dll。似乎不必要的麻烦,但只要反序列化到的类的结构与数据的结构部分匹配,就不会有什么区别 RavenDB服务器根本不关心您在客户机中使用什么类。您当然可以共享一个dll,如果您的目标是不同

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

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

是否有一种方法可以让raven将文档映射到批处理作业项目中与web项目中的类具有相同属性的类


如果需要的话,我可以创建一个只包含这些类的共享dll。似乎不必要的麻烦,但只要反序列化到的类的结构与数据的结构部分匹配,就不会有什么区别

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)

只要反序列化到的类的结构与数据的结构部分匹配,您就可以查看这一部分内部内容,这不会产生任何影响

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)

您可以回顾一下这一部分内部内容

精彩的答案。。。虽然我还没有真正测试过:)答案很好。。。虽然我还没有实际测试过:)