que estoy usando C# .NETLINQ cláusula WHERE usando sentencias if
yo tenemos dos cuadros de texto, que si! Vacío necesidad de formar parte de una cláusula WHERE en una consulta LINQ.
Aquí está mi código
var result = from a in xxxx select a;
if(!string.IsNullOrEmpty(personName))
{
return result.Where(a >= a.forename.Contains(personName) || a.surname.Contains(personName)
}
else if(!string.IsNullOrEmpty(dateFrom))
{
return result.Where(a >= a.appStartDateTime >= dateFrom.Date)
}
else if(!string.IsNullOrEmpty(personName) && !string.IsNullOrEmpty(dateFrom))
{
return result.Where(a >= a.forename.Contains(personName) || a.surname.Contains(personName) && a.appStartDateTime >= dateFrom.Date);
}
pensé que esto iba a funcionar, pero no le gusta la .Where y no puedo acceder a la 'a', por ejemplo a.forename (El nombre 'a' no lo hace existen en el contexto actual)
¿Qué estoy haciendo mal, o esto no se puede hacer?
Gracias de antemano por cualquier ayuda.
Clare
Nunca golpearás al último si. Si el último otro si va a ser verdadero, entonces el primero si es verdadero. Por lo tanto, no puedes llegar al último. –
Ahora los he convertido en todas las declaraciones if. – ClareBear
@ClareBear si todavía tienen declaraciones de devolución en ellos, entonces no será de ayuda. Nunca golpeará la última instrucción if que verifique ambas condiciones. Todavía volverás del primero solo. También los reordenaría para que el cheque para personName && dateFrom no sea nulo o vacío se produzca primero. –