使用Linq进行分页

时间:2013-07-12 06:29:40

标签: linq

我需要将分页逻辑应用于此查询。我怎么能这样做?

我的查询如下,

myresultset = from req in myreqTable
              join streq in myStreqTable on req.ID.ToString() equals new SPFieldLookupValue( Convert.ToString( streq[FormID] ) ).LookupValue
              where (filter(req) && filter1(streq))
              join plnts in plantDetails on Convert.ToString( streq[RequestID) equals Convert.ToString(plnts[RequestID]) into mySet
              from s in mySet.DefaultIfEmpty()
              select new Mytable() {
                  FormID = Convert.ToString(streq[FormID]),
                  RequestID = Convert.ToString(streq[RequestID])
              };

3 个答案:

答案 0 :(得分:3)

.Skip( pageSize * pageIndex ).Take( pageSize );添加到查询的末尾。请注意,pageIndex从零开始(因此第一页为0,第二页为1,依此类推。)

但是你的Linq对我来说看起来不合适,并且有一些语法错误。你确定这是你编辑的代码吗?

答案 1 :(得分:0)

使用TakeSkip方法:

myresults = myresults.Skip((page - 1) * pageSize).Take(pageSize);

我假设页面编号从1开始。

答案 2 :(得分:0)

recordsForCurrentPage = myresultset.Skip( recordsPerPage * pageNumber ).Take( recordsPerPage )

假设您的页码以0开头。否则从pageNumber中减去1。