Saltar al contenido

Cláusula WHERE dinámica en LINQ

Solución:

texto alternativo


(fuente: scottgu.com)

¿Necesitas algo como esto? Utilice la biblioteca de consultas dinámicas de Linq (la descarga incluye ejemplos).

Consulte el blog de ScottGu para obtener más ejemplos.

Tengo un escenario similar en el que necesito agregar filtros según la entrada del usuario y encadeno la cláusula where.

Aquí está el código de ejemplo.

var votes = db.Votes.Where(r => r.SurveyID == surveyId);
if (fromDate != null)
{
    votes = votes.Where(r => r.VoteDate.Value >= fromDate);
}
if (toDate != null)
{
    votes = votes.Where(r => r.VoteDate.Value <= toDate);
}
votes = votes.Take(LimitRows).OrderByDescending(r => r.VoteDate);

También puede usar PredicateBuilder de LinqKit para encadenar múltiples expresiones lambda con seguridad de tipos usando Or o And.

http://www.albahari.com/nutshell/predicatebuilder.aspx

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *