永发信息网

关于Linq to Sql的分页

答案:2  悬赏:20  手机版
解决时间 2021-02-03 18:17
  • 提问者网友:城市野鹿
  • 2021-02-03 03:01
有一个名为Customer的Linq to Sql实体类,下面是分页查询:
public IQueryable GetCustomer(out int count, int pageSize, int pageIndex)
{
count = db.Count();

//动态生成查询表达式
var query = db.Customer.OrderBy(customer=> customer.CustomerID)
.Skip(pageSize * (pageIndex - 1)).Take(pageSize);
//返回查询的表达式目录树
return query;
}
其中db是DataContext的实例,在类成员中定义。
假如每页数据大小pageSize为10,,当pageIndex为1的时候,我想查询第1条至第10条数据,但是linq语句中的Skip(0)却查询不到表中的第一条数据,是从第2条数据开始到第11条数据的,应该怎么解决?我用的是.NET4.0,我在网上看到说这个问题是.NET3.5中的bug,.NET4.0中已经解决了,但我的还是不行,求解。

有个地方写错了,count=db.Customer.Count();
最佳答案
  • 五星知识达人网友:妄饮晩冬酒
  • 2021-02-03 04:23
我没遇到这情况啊,实在不行,你就这样
public IQueryable GetCustomer(out int count, int pageSize, int pageIndex)
{
count = db.Customer.Count();
int startIndex=pageSize * (pageIndex - 1);
//动态生成查询表达式
if(startIndex<=0)
{
return db.Customer.OrderBy(customer=> customer.CustomerID)
.Take(pageSize);}
else
{
return db.Customer.OrderBy(customer=> customer.CustomerID)
.Skip().Take(pageSize);
//返回查询的表达式目录树
}

}
ok不
全部回答
  • 1楼网友:逃夭
  • 2021-02-03 05:43

var ns=(from n in news join c in comment on n.id equals c.nid orderby c.count(c.nid) descending).take(5);

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯