tsh*_*ake 5 .net c# linq iqueryable
在where子句中获取orderby的此错误.我之所以这样做,是因为之前,如果我没有定义'人',我会在返回时收到错误,因为人们说这个名字'人'在当前的情境中并不存在.我该如何解决?
public JsonResult PersonsList(string birthyear)
{
TutorialDBContext db = new TutorialDBContext();
var NumericYear = Convert.ToInt32(birthyear);
IQueryable people;
if (birthyear == "All")
{
people = from m in db.persons
select m;
people = people.OrderByDescending(s => s.birthdate);
}
else
{
people = from m in db.persons
where m.birthdate.Year >= NumericYear
where m.birthdate.Year <= (NumericYear + 9)
select m;
}
return Json(people, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
因为确实没有这样的方法.有一个接受一个IQueryable<T>.使用
IQueryable<Person> people;
Run Code Online (Sandbox Code Playgroud)
或任何适合的元素类型.
OrderByDescending()是 的扩展方法IQueryable<T>,而不是非泛型的扩展方法IQueryable。
所以你需要声明people为IQueryable<Person>.