2012-06-25 131 views
7

我下面斯科特谷的文章,以創建一個動態的LINQ http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspxC#動態可變的LINQ Where子句

他給了一個例子:

Expression<Func<Customer, bool>> e1 = 
    DynamicExpression.ParseLambda<Customer, bool>("City = \"London\""); 
Expression<Func<Customer, bool>> e2 = 
    DynamicExpression.ParseLambda<Customer, bool>("Orders.Count >= 10"); 
IQueryable<Customer> query = 
    db.Customers.Where("@0(it) and @1(it)", e1, e2); 

這工作正常,在我的情況。但是,我有未知數的where子句,這是在運行時決定的。

誰能告訴我如何創建一個通用的Where子句,如

Where("@0(it) and @1(it) and... @n(it)", e1, e2, ... en); 

感謝

+0

怎麼樣的東西,如db.Customers.Where嘗試(C => c.Order .Count> someVariable1 && c.Order.Count HatSoft

回答

18

您可以query對象上附加其他運營商:

query = db.Customers.Where(...); 
query = query.Where(...); 
query = query.Where(...); 

這樣你可以動態附加子句,並且你的計數是獨立的。

+0

謝謝那就是我現在正在做的 – gunnerz

+0

+1這麼簡單。非常感謝先生。 –

+0

IN子句在哪裏做? – Neo