【发布时间】:2015-01-20 16:53:14
【问题描述】:
尝试执行跳过方法时出现错误。仅 LINQ to Entities 中的排序输入支持“跳过”方法。必须在方法“Skip”之前调用方法“OrderBy”。
我很清楚 orderby 必须在调用 skip 之前调用,并且我在直接调用之前的另一个函数中在 skip 之前调用它。
AddOrderBy(AdvTitleResults, ColumnNumber, OrderByDesc);
var SearchTitles = AdvTitleResults.Skip(PageNum * NumberOfResults)
.Take(NumberOfResults).ToList();
order by 函数看起来像这样默认确保它总是被分配:
private void AddOrderBy(IQueryable<Title> Results, int ColumnNumber, bool OrderByDesc)
{
switch (ColumnNumber)
{
case 1:
if (OrderByDesc)
Results = Results.OrderByDescending(t => t.FK_ContentType);
else
Results = Results.OrderBy(t => t.FK_ContentType);
break;
case 2:
if (OrderByDesc)
Results = Results.OrderByDescending(t => t.TitleFullName);
else
Results = Results.OrderBy(t => t.TitleFullName);
break;
default:
if (OrderByDesc)
Results = Results.OrderByDescending(t => t.ID);
else
Results = Results.OrderBy(t => t.ID);
break;
}
}
谁能解释为什么这不起作用?
【问题讨论】: