1. 程式人生 > >NHibernte 4.0.3版本中,使用Queryover().Where().OrderBy().Skip().Take()方法分頁獲取數據失敗

NHibernte 4.0.3版本中,使用Queryover().Where().OrderBy().Skip().Take()方法分頁獲取數據失敗

osi ber modal str 問題 res tor 獲取數據 max

問題代碼如下:

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()

NHibernte 4.0.3版本中,使用Queryover().Where().OrderBy().Skip().Take()方法分頁獲取數據失敗