zzz*_*zzz 6 c# linq sorting linq-to-sql sortdirection
我正在尝试对一组用户进行排序.我可以访问排序属性和方向(asc,desc).我目前的查询订单如下.但正如您所看到的那样,它并未考虑排序方向.如何在不必使用Dynamic Linq或为"asc"或"desc"排序方向添加另一组语句的情况下构建此表达式.
public override IQueryable<DalLinq.User> GetSort(IQueryable<DalLinq.User> query)
{
//SelectArgs.SortDirection <- Sort Direction
switch (SelectArgs.SortProperty)
{
case "LastName":
query = query.OrderBy(p => p.LastName);
break;
case "FirstName":
query = query.OrderBy(p => p.FirstName);
break;
default:
query = query.OrderBy(p => p.UserName);
break;
}
return query;
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*ell 12
理想情况下,你想使用OrderByDescending- 你当然可以作弊:
public static class MyExtensionMethods
{
public static IOrderedQueryable<TSource> OrderBy<TSource,TValue>(
this IQueryable<TSource> source,
Expression<Func<TSource,TValue>> selector,
bool asc)
{
return asc ? source.OrderBy(selector) : source.OrderByDescending(selector);
}
}
Run Code Online (Sandbox Code Playgroud)
并使用OrderBy传递选择器和布尔?
如果你不需要静态类型,你也可以从头开始动态构建表达式 - 当然 - 就像这个简短的样本(本质上类似于动态LINQ库).
| 归档时间: |
|
| 查看次数: |
6894 次 |
| 最近记录: |