如何在运行时在linq查询中指定排序字段和方向?

时间:2009-05-18 02:45:05

标签: .net linq

假设我有以下简单查询

var q = 
    from p in products
    orderby p.ProductName descending
    select p;

在运行时指定排序字段和方向的最简单,最直接的方法是什么?

2 个答案:

答案 0 :(得分:1)

我们之前使用动态linq库来执行此操作。 Here's a link访问Scott Guthrie的博客。

基本上你可以改变上面的查询,如下所示:

var q = db.Products
        .OrderBy("ProductName Descending")

答案 1 :(得分:1)

我用switch语句做了。这是一个片段,我正朝着上升的方向前进。在我的网址中,我传入了一个参数来确定方向,以及要排序的内容。

if (sortDirection == "asc")
{
    switch (sortCol)
    {
        case 1:
            q = from f in q
                orderby f.Id ascending
                select f;

q显然是原始LINQ选择的结果。