用户自定义过滤器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 );