Возможно, вы захотите подумать о создании объекта для хранения параметров подкачки, а также о проверке столбца заказа, но вы можете создать простую функцию подкачки, как эта ...
public IEnumerable<Color> Search(string nameSearch, string order, int pageSize, int pageIndex, bool ascending, out int totalCount)
{
var query = Session.QueryOver<Color>();
query.Where(color => color.Name.IsLike(nameSearch, MatchMode.Anywhere));
return Page(query, order, pageSize, pageIndex, ascending, out totalCount);
}
public IEnumerable<T> Page<T>(IQueryOver<T,T> query, string order, int pageSize, int pageIndex, bool ascending, out int totalCount)
{
var rowCountQuery = query.ToRowCountQuery();
query.UnderlyingCriteria.AddOrder(new Order(order, ascending));
query.Take(pageSize).Skip((pageIndex) * pageSize)
.Future();
totalCount = rowCountQuery.FutureValue<int>().Value;
return query.List();
}