Вопрос

У меня есть запрос LINQ как

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

Где «MyIndex» - это простой индекс, определенный в RavendB. Я знаю, что при запросе индекса в Ravendb он возвращает «тоталрез». Видеть здесь

Как я могу получить результат запроса, который имеет TotalResult имущество?

Это было полезно?

Решение

Если вы выполняете LuconeQuery, вы получаете возврату документации, которая имеет свойство QueryResult, которая содержит TotalResults, чтобы вы могли получить доступ к ним следующим образом:

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, вы можете назвать счет () в запросе, прежде чем ограничивать его с пропуском и взять:

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 доступно только на LucineQuery, а не запрос LINQ.

Похоже, вы можете получить QueryResult через session.LuceneQuery<YouModel>("YourIndex") и не из session.Query<YourModel>("YourIndex"). Отказ Но я задаюсь вопросом, почему одно использовать session.Query<YourModel>("YourIndex") ?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top