首页 > 技术文章 > NHibernte 4.0.3版本中,使用Queryover().Where().OrderBy().Skip().Take()方法分页获取数据失败

JackeyLove 2017-11-03 16:52 原文

问题代码如下:

var result=repository.QueryOver<modal>()
              .Where(p=>p.Code==Code)
              .OrderBy(p=>p.ID).Asc
              .Skip(pageSize*(page-1))
              .Take(pageSize).List()

当设置page=1,pageSize=10时,获取数据正常;当设置的page大于1时,获取不到任何数据;原因尚未找到。

解决办法:修改代码如下

           var result= repository.QueryOver<modal>()
                    .Where(p => p.Code == Code)
                    .OrderBy(p=>p.ID).Asc
                    .RootCriteria.SetFirstResult((page - 1) * pageSize)
                    .SetMaxResults(page * pageSize).List()

 

推荐阅读