I have read somewhere (can't remeber where and how) that NHibernate 3 allows the determination of the total number of records whilst performing a paged query (in one database query). Is this right?
I have this code:
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();
}
and would like to initialise 'total' as efficiently as possible.
Thanks.
Christian
PS:
Potential 'solution'?:
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();