Я где-то читал (не могу вспомнить, где и как), что NHibernate 3 позволяет определить общее количество записей при выполнении постраничного запроса (в одном запросе базы данных). Правильно ли это?
У меня есть этот код:
public IEnumerable<X> GetOrganisms(int PageSize, int Page, out int total)
{
var query = (from e in Session.Query<X>() select e).AsQueryable();
return query.Skip((Page - 1) * PageSize).Take(PageSize).ToList();
}
и хотел бы как можно более эффективно инициализировать "total".
Спасибо.
Christian
PS:
Потенциальное "решение"?:
Total = (int) Session.CreateCriteria<X>()
.SetProjection(Projections.RowCount())
.FutureValue<Int32>().Value;
var query = (from e in Session.Query<X>() select e).AsQueryable();
return query.Skip((Page - 1) * PageSize).Take(PageSize).ToList();