欢迎光临

木子屋

标题: LINQ to Entities分页出错：必须在调用“Skip”方法之前调用方法“OrderBy”

作者: dnawo

日期: 2013-05-17 01:41 PM

分类: Win编程

内容: 复制内容到剪贴板 程序代码using (testContext context = new testContext())
{
var data = context.People.AsQueryable();
//排序
if (sort.Equals("Created", StringComparison.OrdinalIgnoreCase))
{
if (order.Equals("desc", StringComparison.OrdinalIgnoreCase))
{
data = data.OrderByDescending(d => d.Created);
}
else
{
data = data.OrderBy(d => d.Created);
}
}
//分页
data = data.Skip((page - 1) * pagesize).Take(pagesize);
//输出
foreach (var item in data)
{
Console.WriteLine("{0},{1},{2}", item.Id, item.Name, item.Created);
}
}
上边代码运行出错，错误信息：
引用内容仅对 LINQ to Entities 中已排序的输入支持方法“Skip”。必须在调用“Skip”方法之前调用方法“OrderBy”。
看信息应是某个分支未进行排序，检查代码并做如下修改后运行正常(红色部分新增)：
复制内容到剪贴板 程序代码using (testContext context = new testContext())
{
var data = context.People.AsQueryable();
//排序
if (sort.Equals("Created", StringComparison.OrdinalIgnoreCase))
{
if (order.Equals("desc", StringComparison.OrdinalIgnoreCase))
{
data = data.OrderByDescending(d => d.Created);
}
else
{
data = data.OrderBy(d => d.Created);
}
}
else
{
data = data.OrderBy(d => d.Id);
}
//分页
data = data.Skip((page - 1) * pagesize).Take(pagesize);
//输出
foreach (var item in data)
{
Console.WriteLine("{0},{1},{2}", item.Id, item.Name, item.Created);
}
}

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.281 ms

返回

标题: LINQ to Entities分页出错：必须在调用“Skip”方法之前调用方法“OrderBy”

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.281 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.313 ms

返回