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);
}
}
[color=Red]else
{
data = data.OrderBy(d => d.Id);
}[/color]
//分页
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)
暂无评论。