LINQ查询动态排序 [英] LINQ Queries with dynamic Order By

查看:101
本文介绍了LINQ查询动态排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个查询,我需要基于一个查询参数。例如,如果SortBy参数是价格有ordeby,查询需要改变与价格。如果其评级不是改变查询按排名进行排序。

I have a query where I need to have ordeby based on a querystring parameter .For example if sortby parameter is price , Query needs to change with price . If its rating than change query to sort by rating .

我知道predicateBuilder能做到AND和OR的东西,但我怎么做一个动态的ordeby LINQ查询。

I know PredicateBuilder can do And and OR stuff but how do I make a dynamic ordeby linq query .

推荐答案

那么,你可以使用switch语句或类似的东西:

Well, you could use a switch statement or something similar:

IQueryable<Foo> query = ...;

switch (orderByParameter)
{
    case "price":
        query = query.OrderBy(x => x.Price);
        break;
    case "rating":
        query = query.OrderBy(x => x.Rating);
        break;
    // etc
}

您也可以做到这一点与反思,但假设你有域有限数量的命令通过,这很可能是最简单的方法。

You could also do it with reflection, but assuming you have a limited number of fields to order by, this is quite possibly the simplest approach.

这篇关于LINQ查询动态排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆