Clause Variable Where de la variable Linq dynamic C #

Je suis l’article de Scott Gu pour créer un LINQ dynamic http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library .aspx

Il a donné un exemple:

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

Cela fonctionne bien dans mon cas. Cependant, j’ai un nombre inconnu de clauses where, qui sont décidées au moment de l’exécution.

Quelqu’un peut-il me dire comment créer une clause Where générique, telle que

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

Merci

Vous pouvez attacher des opérateurs supplémentaires sur l’object de query :

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

De cette façon, vous pouvez attacher des clauses dynamicment et vous êtes indépendant de leur nombre.

Essaye ça;

Requête dynamic linq avec critères multiples / inconnus

J’ai eu un problème similaire et c’était une solution que j’ai utilisée (et est toujours utilisée)