linq中的后期绑定

时间:2010-08-26 13:01:47

标签: vb.net linq linq-to-sql

我有一个针对集合的简单LINQ查询。

   Dim oList = From w In Os
                Order By w.ClassTitle Descending
        Select w

我希望能够做到的是进入这个,无论是下降还是上升。我不知道该怎么做。

另外,如果我在这里有一个where子句..说

where w.ClassTitle = "Test"

如何进行“测试,以便将其传递给LINQ查询。

由于 香农

2 个答案:

答案 0 :(得分:1)

我不认为你可以将“传入”此查询,但是你可以进行常规查询

var oList = from w in Os
            select w

然后,当用户采取某些行动时,您可以在此之后简单地执行订单。

oList.OrderBy(o => o.ClassTitle)

oList.OrderByDescending(o => o.ClassTitle)

<强>更新

就后期绑定而言,您可以做的是编写一个执行Where子句的方法。也许使用扩展方法可能会起作用。我对C#比较熟悉,所以我的语法可能有点偏离

public static IEnumerable<Os> ExecuteWhere (this Table<Os> table, Expression<Func<Os, bool>> predicate)
{
    return table.AsQueryable<Os>().Where(predicate);
}

然后像这样称呼它:

oList.ExecuteWhere(a => a.ClassTitle == "Test")

答案 1 :(得分:0)

使用委托语法。例如;

Dim oList = Os.Where(....).OrderBy(...)...