1

在查询返回异构文档的索引时,处理结果集的最佳™/最广泛使用/最广泛接受的方式是什么?

一个明显的答案是将它们作为通用的基本类型加载,然后向上转换为更具体的类型,但这似乎不可扩展。

我可以看到这是相关的一个常见场景是在搜索中。

4

1 回答 1

1

如果仔细观察,您会发现结果已经是POCO。raven 客户端根据其Raven-Entity-Name元数据对它们进行补充。

当然,您可以使用通用的基本类型或接口。如果你有很多不相关的数据,你可以使用object. 然后稍后在您的应用程序中,您可以过滤它们并适当地投射它们,或者按原样使用它们。

试试这个作为一个实验。存储三个独立的不相关实体类型的一些文档并将它们多映射回来。或者反对返回多种不同文档类型的任何索引。哎呀,即使Raven/DocumentsByEntityName是工作室建造也应该这样做。像这样查询这个索引:

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

(与往常一样,等待非陈旧的结果,ToList 等)

设置断点并查看返回的结果。它们确实都是正确的类型,它们只是不同的类型,具体取决于返回的文档。对他们做你想做的事。

于 2013-01-09T14:04:32.163 回答