当查询返回异构文档的索引时,使用结果集的最佳/最广泛使用/最广泛接受的方式是什么?
一个明显的答案是将它们作为公共基类型加载,然后向上转换为更具体的类型,但这似乎不可扩展。
我可以看到这是相关的常见情况是搜索。
答案 0 :(得分:1)
仔细观察,您会发现结果已经 POCO。它们由乌鸦客户端根据其Raven-Entity-Name
元数据进行水合。
您可以使用通用基本类型或界面。如果您有大量不相关的数据,则可以使用object
。然后在您的应用程序中,您可以过滤它们并适当地投射它们,或者只是按原样使用它们。
尝试将其作为实验。存储三个独立的不相关实体类型的几个文档,并将它们重新映射回来。或者反对任何返回多种不同文档类型的索引。哎呀,即使工作室构建的Raven/DocumentsByEntityName
也应该这样做。像这样查询这个索引:
var results = session.Query<object>("Raven/DocumentsByEntityName");
(通常情况下,等待非陈旧的结果,ToList等)
设置断点并查看您获得的结果。它们确实都是正确的类型,它们只是不同的类型,具体取决于返回的文档。做你想做的事。