我应该如何使用来自RavenDB查询的异构文档

本文关键字:查询 异构 文档 RavenDB 何使用 我应该 | 更新日期: 2023-09-27 17:51:14

当查询一个返回异构文档的索引时,什么是最好的?/最广泛使用/最广泛接受的处理结果集的方法?

一个明显的答案是将它们加载为公共基类型,然后向上转换为更特定的类型,但这似乎不具有可伸缩性。

我应该如何使用来自RavenDB查询的异构文档

如果仔细观察,您会发现结果已经是 poco了。raven客户端根据它们的Raven-Entity-Name元数据对它们进行处理。

当然,您可以使用通用的基类型或接口。如果你有很多不相关的数据,你可以用object。然后在你的应用程序中,你可以过滤它们并适当地转换它们,或者直接使用它们。

做个实验。存储三个独立的不相关实体类型的几个文档,并将它们multimap返回。或者违背任何返回多个不同文档类型的索引。见鬼,甚至工作室构建的Raven/DocumentsByEntityName也应该这样做。像这样查询这个索引:

var results = session.Query<object>("Raven/DocumentsByEntityName");

(通常,等待非陈旧的结果,ToList等)

设置一个断点并查看返回的结果。它们实际上都已经是正确的类型了,它们只是根据返回的文档而不同的类型。