Nhibernate, Paging, Count(*), OrderBy и производительность?
Постраничный вывод:
return Session.CreateCriteria<T>()
.AddOrder(Order.Asc("Id"))
.SetFirstResult((pageNumber - 1) * pageSize)
.SetMaxResults(pageSize)
.List();


Count:
return (int) session.CreateCriteria<T>()
.SetProjection(Projections.Count("Id")); // Любое поле
.UniqueResult();


Более эстетичный вариант с NHibernate 3.0
Paging:
return Session.QueryOver<T>()
.OrderBy(x => x.Id).Asc
.Take(pageSize)
.Skip((pageNumber - 1) * pageSize)
.List();


Count:
return Session.QueryOver<T>().RowCount();

Спасибо.