NHibernate中的分页

如些获得分页的数据,应是NHibernate中常用的方法:
cri.SetFirstResult(20);
cri.SetMaxResults(
10);
IList list 
= cri.List();

list变量就得到某一页的数据,上面是第20页(从0计起)的数据。看了一其执行的Sql语句
NHibernate: SELECT top 30 this.ID as ID0_, this.Title as Title0_, this.[Memo]  FROM Batch this WHERE (this.BuilderGuid = @p0 and this.IsTemp = @p1)

“top 30”,就是说查询得到的除本页数据外,还包括前面几页的数据。尝试改变一下First及Max值,最后top的记录等于First*Max;当然list只会返回给我们10条记录,这是我们要求的。这种分页方法越到后面效率越差,以后再来优化了...
posted @ 2006-03-08 15:16  生命体验之kevin-Y  阅读(2479)  评论(1编辑  收藏  举报