Да, это так.Вот простой пример:
var blogs = _session.Query<Blog>()
.Take(30)
.ToFuture();
var blogCount= _session.Query<Blog>()
.ToFutureValue(x => x.Count());
Console.WriteLine(blogCount.Value); // DB is queried here.
Вот пример, где я использовал его для формы поиска клиентов, которая отображала результаты поиска по страницам и общее количество результатов поиска.Обратите внимание, что вы можете повторно использовать IQueryable для создания двух будущих.Методы Filter создали IQueryable на основе того, какие поля пользователь ищет.
int resultsPerPage = 50;
var query = _session.Query<CustomerSearch>()
.FilterById(model)
.FilterByFirstName(model)
.FilterByLastName(model)
.FilterBySocialSecurityNumber(model)
.FilterByPrimaryPhoneNumber(model);
var futureResults = query
.OrderBy(x => x.Id)
.Skip(model.Page * resultsPerPage)
.Take(resultsPerPage)
.ToFuture();
var futureCount = query.ToFutureValue(x => x.Count());