2012-06-25 17 views
7

estoy siguiendo el artículo de Scott Gu para crear un LINQ dinámica http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspxC# dinámica variable LINQ cláusula Where

Ha dado un ejemplo:

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); 

Esto funciona bien en mi caso. Sin embargo, tengo una cantidad desconocida de cláusulas where, que se decide en tiempo de ejecución.

Puede alguien por favor dígame cómo crear un genérico cláusula WHERE, como

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

Gracias

+0

¿Qué tal intentar con algo como db.Customers.Where (c => c.Order .Count> someVariable1 && c.Order.Count HatSoft

Respuesta

18

Puede adjuntar operadores adicionales en el objeto query:

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

esta manera puede adjuntar cláusulas dinámicamente y usted es independiente en su recuento.

+0

Gracias Eso es lo que estoy haciendo ahora – gunnerz

+0

+1 Tan simple como era. Muchas gracias señor. –

+0

cómo hacer la cláusula IN en dónde? – Neo

Cuestiones relacionadas