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)