RavenDB分页索引

aja*_*hiz 4 linq pagination ravendb

我有一个Linq查询

var mdls = (from mdl in query dbSession.Query<MyModel>("MyIndex")
              orderby mdl.Name
              select dept).Skip(page.Value).Take(4);
Run Code Online (Sandbox Code Playgroud)

其中"MyIndex"是RavenDB中定义的简单索引.我知道在RavenDB中查询索引时会返回"TotalResults".看到这里

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

Ada*_*per 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;
Run Code Online (Sandbox Code Playgroud)

如果您正在执行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);
Run Code Online (Sandbox Code Playgroud)