我有一个使用索引的RavenDB查询,我需要添加条件检查嵌套对象类型(这些对象不是单独的文档)
entries = session.Query<result, index>()
/* some conditions here */
.Where(x => x.Messages.Any(m => m.GetType() == typeof(MyMessage)))
.ToList();
Raven告诉我,他不知道如何翻译GetType。那我怎么能实现这个呢?
答案 0 :(得分:4)
经过长时间的研究,我找到了解决方案。
我将字段添加到索引:
MessageTypes = entry.Messages.Select(m => AsDocument(m)["$type"].ToString())
AsDocument()
返回RavenJObject
,其中包含所有属性,包括$type
。索引该属性后,要求某种类型非常简单