【发布时间】:2013-06-06 10:29:12
【问题描述】:
我知道如何构造 WHERE 子句,但由于某种原因我无法构造 order by 子句。
IQueryable<ShowList> query = from s in db.ShowList select s;
if (title != null)
{
query = query.Where(s => s.Title == title);
}
这就是问题所在。我让用户可以选择他们想要排序的列以及他/她想要的是 DESC 还是 ASC。我认为我在 OrderBy () 内部做错了。
“orderBy”变量是用户的输入,“order”变量也是用户的输入。
“orderBy”应该是列名,“order”应该是“desc”或“asc”
if (orderBy != null && order != null)
{
switch (order)
{
case "asc":
query = query.OrderBy(s => orderBy);
break;
case "desc":
query = query.OrderByDescending(s => orderBy);
break;
default:
query = query.OrderBy(s => orderBy);
break;
}
}
return query.ToList();
谁能告诉我我做错了什么?
【问题讨论】:
标签: c# asp.net-mvc linq-to-entities dynamic-programming asp.net-web-api