Я хочу использовать LINQ to NHibernate для классического сценария подсчета / разбивки на страницы:
var query = Session.Query<Entity>().Where(...);
var count = query.ToFutureValue(c => c.Count());
var results = query.OrderBy(x => x.Field)
.Skip(20)
.Take(10)
.Fetch(x => x.Related1)
.Fetch(x => x.Related2)
.ToFuture();
Базовая реализация ToFutureValue () не принимает параметр выражения, однако это очень просто реализовать (объяснил в этом блоге ).Последний запрос завершается неудачно с NotSupportedException («Вы также можете использовать метод AsFuture () для NhQueryable») при вызове метода .ToFuture ().Кажется, проблема в том, что метод расширения .Fetch () возвращает NhFetchRequest, а метод расширения .Future () ожидает и NhQuerable.Есть ли обходной путь к этому?
Редактировать: эта ошибка была исправлена в провайдере NHibernate Linq с версии 3.2