【发布时间】:2010-11-10 03:11:15
【问题描述】:
在那个简单的情况下:
public class Person
{
public int Id {get;set;}
public int Name {get;set;}
}
- 我需要生成一个带有分页和排序的网格
- 我的数据库有大约 10 万人
哪个选项性能更好:
1) 利用NHibernate一级缓存在第一时间和之后获取所有元素,例如:
personRep.FindAll().OrderBy(s =>s.Name).AsPagination(pageNumber,pageSize);
Obs.: AsPagination 是一种扩展方法...
2) 仅从数据库中获取实际页面,例如:
public virtual IList<T> GetPaginedList(int __pageIndex, int __pageSize,out int __total)
{
var _rowCount = Session.CreateCriteria(typeof(T))
.SetProjection(Projections.RowCount()).FutureValue<Int32>();
var _results = Session.CreateCriteria(typeof(T))
.SetFirstResult(__pageIndex * __pageSize)
.SetMaxResults(__pageSize)
.Future<T>();
__total = _rowCount.Value;
return _results;
}
【问题讨论】:
标签: c# nhibernate paging