public static IEnumerable<T> Enumerate<T>(this ICriteria criteria, int pageSize = 1000)
{
var entityCount = CriteriaTransformer.TransformToRowCount(criteria).UniqueResult<int>();
var pageCount = (int) Math.Ceiling(entityCount/(double) pageSize);
criteria = CriteriaTransformer.Clone(criteria).SetMaxResults(pageSize);
return Enumerable.Range(0, pageCount)
.SelectMany(pageNum => criteria.SetFirstResult(pageNum*pageSize).List<T>());
}
NHibernate
Showing posts with label paging. Show all posts
Showing posts with label paging. Show all posts
Thursday, February 2, 2012
Page through potentially large NHibernate criteria query results
Subscribe to:
Posts (Atom)