use*_*944 6 c# linq entity-framework
我在索引页面上的MVC中进行寻呼..在这条线上我收到了错误
return View( employee.ToPagedList(Page ?? 1,3));
Run Code Online (Sandbox Code Playgroud)
这是索引方法
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));
}
Run Code Online (Sandbox Code Playgroud)
我没有使用Skip方法......但是有这个错误:
只有LINQ to Entities中的排序输入才支持'Skip'方法.必须在方法'Skip'之前调用'OrderBy'方法.
我读过类似的帖子
只有LINQ to Entities中的排序输入才支持'Skip'方法.必须在方法'Skip'之前调用'OrderBy'方法
如何解决"方法'Skip'仅支持LINQ to Entities中的排序输入."
只有LINQ to Entities中的排序输入才支持'Skip'方法.必须在方法'Skip'之前调用'OrderBy'方法
ASP.NET MVC 3 PagedList.只有LINQ to Entities中的排序输入才支持'Skip'方法.
并做了以下更改......
1.Put employee.wif语句之前的代码:
2.在switch语句中添加一个默认大小写,并使其抛出.case"Default":抛出新的ArgumentException("error",sortBy);
使用IOrderedQueryable类型.
IQueryable employee = db.Employees.AsQueryable();
这不解决问题..
大多数他们使用Skip方法..但我没有...和其他帖子查询是复杂的..
请建议丢失什么
Mel*_*igy 12
你有一个Skip
方法.
在PagedList
为您添加它.检查代码.这就是分页的工作原理,Take
以及Skip
.
另外我认为你的案例陈述是有意的
switch (sortBy)
{
case "Name desc":
employee = employee.OrderByDescending(x => x.FUllName);
break;
default: // Not: case "Default"
employee = employee.OrderBy(x => x.FUllName);
break;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15032 次 |
最近记录: |