Pergunta

Eu tenho uma consulta LINQ como

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

Onde "MyIndex" é um índice simples definido no Ravendb. Eu sei que, ao consultar um índice no Ravendb, ele retorna "TotalResults". Ver aqui

Como posso obter o resultado da consulta que tem o TotalResult propriedade?

Foi útil?

Solução

Se você estiver executando um LuceneQuery, você recebe um documentário devolvido que possui uma propriedade de consultas que contém o TotalResults para que você possa acessá -lo da seguinte forma:

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;

Se você estiver executando uma consulta LINQ em vez disso, poderá ligar para a contagem () na consulta antes de limitá -la com Skip and 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);

Outras dicas

Você precisa fazer algo assim no final de sua consulta

.Customize(x => x.TotalResult)

A propriedade TotalResult está disponível apenas no LuceneQuery, não na consulta LINQ.

Parece que você pode obter QueryResult Através dos session.LuceneQuery<YouModel>("YourIndex") e não de session.Query<YourModel>("YourIndex"). Mas, eu me pergunto por que alguém usaria session.Query<YourModel>("YourIndex") ?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top