Quiero escribir una consulta RavenDB que filtre por un valor si está disponible, pero si ese valor no está disponible, quiero que devuelva todos los objetos. Por ejemplo, en LINQ a objetos, puedo hacer algo como esto:RavenDB - Opcional en la cláusula
var matches = people.Where(x => x.LastName == userEntry || userEntry == string.Empty).ToList();
Pero la siguiente no funcionará:
var matches = RavenSession.Query<Person>().Where(x => x.LastName == userEntry || userEntry == string.Empty).ToList();
Debido userEntry
no es un valor indexado, esto arroja una excepción.
¿Cómo puedo lograr esto?
peor de los casos, acaba de hacer una sentencia if para comprobar 'userEntry == string.Empty' y consulta ¡en consecuencia! ¡Bonificación, es más fácil de entender! – banging
Creo que veo lo que quieres decir, pero simplifiqué la pregunta para mayor claridad. Mi escenario real es más complicado, donde tengo ~ 10 campos que son todos opcionales para el filtrado, y cualquiera que el usuario rellene, quiero incluirlos en la consulta. Pero si el usuario los deja en blanco, deberían dejarse de lado. Por lo tanto, sería poco práctico escribir si las declaraciones con diferentes consultas para cada posible combinación de filtros. –