当查询一个返回异构文档的索引时,什么是最好的?/最广泛使用/最广泛接受的处理结果集的方法?
一个明显的答案是将它们加载为公共基类型,然后向上转换为更特定的类型,但这似乎不具有可伸缩性。
如果仔细观察,您会发现结果已经是 poco了。raven客户端根据它们的Raven-Entity-Name
元数据对它们进行处理。
object
。然后在你的应用程序中,你可以过滤它们并适当地转换它们,或者直接使用它们。
做个实验。存储三个独立的不相关实体类型的几个文档,并将它们multimap返回。或者违背任何返回多个不同文档类型的索引。见鬼,甚至工作室构建的Raven/DocumentsByEntityName
也应该这样做。像这样查询这个索引:
var results = session.Query<object>("Raven/DocumentsByEntityName");
(通常,等待非陈旧的结果,ToList等)
设置一个断点并查看返回的结果。它们实际上都已经是正确的类型了,它们只是根据返回的文档而不同的类型。