题
我有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”。请参阅这里
我怎样才能得到它具有TotalResult
属性的查询结果?
解决方案
如果您正在执行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查询,而不是那么您可以致电查询计数()与跳跃限制之前和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);
其他提示
您需要在您的查询
年底做这样的事.Customize(x => x.TotalResult)
在TotalResult属性是仅在LuceneQuery,不LINQ查询。
可用看来你可以通过QueryResult
,而不是从session.LuceneQuery<YouModel>("YourIndex")
得到session.Query<YourModel>("YourIndex")
。但是,我不知道为什么会一个使用session.Query<YourModel>("YourIndex")
?
不隶属于 StackOverflow