用户自定义过滤器LINQ

用户自定义过滤器LINQ

问题描述:

我有一个用户定义的过滤器(组合框与列名,组合框带有过滤器的类型和使用文本框的值)的形式。

I have form with user defined filters ( combobox with column names, combobox with filter types and textbox with value).

我如何动态地添加用户定义的过滤器到LINQ查询?

How can I dynamicly add user defined filter into LINQ query?

典型的查询是这样的:

var qProducts = from p in db.Products
    where p.IsArchived == false
    order by p.ProductName select p;

我使用LINQ(IQuerable工具包),用于SQL CE数据库访问数据。

I'm using LINQ (IQuerable Toolkit) for access data in SQL CE database.

您可能想看看动态LINQ 从 VS2008样品。然后,你可以这样做:

You might want to look at Dynamic LINQ from the VS2008 Samples. Then you could do something like:

var qProducts = db.Products
                  .Where( "IsArchived = {0}", archiveFilterValue )
                  .OrderBy( sortColumn + " " + sortDirection );