关于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不
全部回答
var ns=(from n in news join c in comment on n.id equals c.nid orderby c.count(c.nid) descending).take(5);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯