我有一个Linq查询
var mdls = (from mdl in query dbSession.Query<MyModel>("MyIndex")
orderby mdl.Name
select dept).Skip(page.Value).Take(4);
其中“MyIndex”是RavenDB中定义的简单索引。我知道在RavenDB中查询索引时会返回“TotalResults”。见here
如何获取具有TotalResult
属性的查询结果?
答案 0 :(得分:6)
如果您正在执行LuceneQuery,则会返回一个DocumentQuery,它具有包含TotalResults的QueryResult属性,因此您可以按如下方式访问它:
var documentQuery = (from mdl in query dbSession.LuceneQuery<MyModel>("MyIndex")
orderby mdl.Name
select dept).Skip(page.Value).Take(4);
var totalResults = documentQuery.QueryResult.TotalResults;
如果您正在执行LINQ查询,那么您可以在查询之前调用Count(),然后使用Skip和Take限制它:
var linqQuery = (from mdl in query dbSession.Query<MyModel>("MyIndex")
orderby mdl.Name
select dept);
var totalResults = linqQuery.Count();
var pageOfResults = linqQuery.Skip(page.Value).Take(4);
答案 1 :(得分:0)
您需要在查询结束时执行此类操作
.Customize(x => x.TotalResult)
TotalResult属性仅适用于LuceneQuery,而不适用于LINQ查询。
答案 2 :(得分:0)
您似乎可以通过QueryResult
而不是session.LuceneQuery<YouModel>("YourIndex")
获得session.Query<YourModel>("YourIndex")
。但是,我想知道为什么会使用session.Query<YourModel>("YourIndex")
?