我有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")

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top