我正在索引页上的 MVC 中进行分页..在这一行我收到错误
return View( employee.ToPagedList(Page ?? 1,3));
这是索引方法
public ActionResult Index(string searchBy, string search, int? Page, string sortBy)
{
ViewBag.SortNameParameter = string.IsNullOrEmpty(sortBy) ? "Name desc"
: "";
ViewBag.SortGenderParameter = string.IsNullOrEmpty(sortBy) ? "Gender desc"
: "Gender";
var employee = db.Employees.AsQueryable();
if (searchBy == "Gender")
{
employee = employee.Where(x => x.Gender == search || search == null);
}
else
{
employee = employee.Where(x => x.FUllName .StartsWith(search ) || search == null);
}
switch (sortBy)
{
case "Name desc":
employee = employee.OrderByDescending(x => x.FUllName);
break;
case "Default":
employee = employee.OrderBy(x => x.FUllName);
break;
}
return View( employee.ToPagedList(Page ?? 1,3));
}
我没有使用 Skip 方法...但是有这个错误:
仅 LINQ to 中的排序输入支持“Skip”方法
实体。必须在该方法之前调用“OrderBy”方法
'跳过'。
我读过类似的帖子
仅 LINQ to Entities 中的排序输入支持“Skip”方法。必须在方法“Skip”之前调用方法“OrderBy” https://stackoverflow.com/questions/11222694/the-method-skip-is-only-supported-for-sorted-input-in-linq-to-entities-the-me
如何解决“LINQ to Entities 中的排序输入仅支持方法‘Skip’”。 https://stackoverflow.com/questions/22800908/how-to-solve-the-method-skip-is-only-supported-for-sorted-input-in-linq-to-en
仅 LINQ to Entities 中的排序输入支持“Skip”方法。必须在方法“Skip”之前调用方法“OrderBy” https://stackoverflow.com/questions/21705926/the-method-skip-is-only-supported-for-sorted-input-in-linq-to-entities-the-me
ASP.NET MVC 3 页面列表。仅 LINQ to Entities 中的排序输入支持“Skip”方法。 https://stackoverflow.com/questions/10660726/asp-net-mvc-3-pagedlist-the-method-skip-is-only-supported-for-sorted-input-in
并做了以下更改...
1.将employee.Where代码放在switch语句之前:
2.在 switch 语句中添加 default case,并使其抛出异常。
案例“默认”:
抛出新的ArgumentException(“错误”,sortBy);
-
使用 IOrderedQueryable 类型。
IQueryable 员工 = db.Employees.AsQueryable();
这并不能解决问题..
他们大多使用 Skip 方法..但我没有...并且其他帖子查询很复杂..
请提出缺少的内容