Linq RavenDB分页索引

Linq RavenDB分页索引,linq,pagination,ravendb,Linq,Pagination,Ravendb,我有一个Linq查询 var mdls = (from mdl in query dbSession.Query<MyModel>("MyIndex") orderby mdl.Name select dept).Skip(page.Value).Take(4); var mdls=(来自query dbSession.query(“MyIndex”)中的mdl) orderby mdl.Name 选择部门)。跳过(页面值)。

我有一个Linq查询

var mdls = (from mdl in query dbSession.Query<MyModel>("MyIndex")
              orderby mdl.Name
              select dept).Skip(page.Value).Take(4);
var mdls=(来自query dbSession.query(“MyIndex”)中的mdl)
orderby mdl.Name
选择部门)。跳过(页面值)。获取(4);
其中“MyIndex”是RavenDB中定义的简单索引。我知道在RavenDB中查询索引时,它会返回“TotalResults”。看


如何获得具有
TotalResult
属性的查询结果?

您需要在查询结束时执行类似操作

.Customize(x => x.TotalResult)

TotalResult属性仅在LuceneQuery上可用,而不在LINQ查询上可用。

如果执行LuceneQuery,则返回的DocumentQuery具有包含TotalResult的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;
var documentQuery=(来自query dbSession.LuceneQuery(“MyIndex”)中的mdl)
orderby mdl.Name
选择部门)。跳过(页面值)。获取(4);
var totalResults=documentQuery.QueryResult.totalResults;
如果改为执行LINQ查询,则可以在使用Skip and Take限制查询之前对查询调用Count()

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);
var linqQuery=(来自query dbSession.query(“MyIndex”)中的mdl)
orderby mdl.Name
选择部门);
var totalResults=linqQuery.Count();
var pageOfResults=linqQuery.Skip(page.Value).Take(4);

您似乎可以通过
session.LuceneQuery(“YourIndex”)
而不是从
session.Query(“YourIndex”)
获得
查询结果。但是,我想知道为什么要使用
session.Query(“YourIndex”)

我没有找到
x.TotalResult
属性。你能给我看一下完整的LINQ语句吗?对不起,我漏掉了一点,请参阅文档以了解完整的语法,在那里它谈到了
session.LuceneQuery
但我在这里使用
session.Query
如果我使用
LuceneQuery
但不是在上面的情况下。