Linq RavenDB分页索引
我有一个Linq查询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 选择部门)。跳过(页面值)。
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
但不是在上面的情况下。