ravendb

ravendb vs mongodb



RavenDB: Cómo consultar con múltiples términos de búsqueda (1)

Puede utilizar el operador In . Si recuerdo correctamente tu código debería verse así:

using Raven.Client.Linq; Resource[] FindResourcesByEmployees(string[] employeeIds) { return this.Session.Query<Resource>() .Where(r => r.EmployeeId.In<string>(employeeIds))) .ToArray(); }

Mi entidad es:

class Resource { string Name; string EmployeeId; }

¿Cómo puedo consultar los recursos de varios empleados? Intenté esto:

Resource[] FindResourcesByEmployees(string[] employeeIds) { return this.Session.Query<Resource>() .Where(r => employeeIds.Contains(r.EmployeeId)) .ToArray(); }

Sin embargo, eso me da NotSupportedException: método no compatible: contiene. Entonces probé el siguiente método:

Resource[] FindResourcesByEmployees(string[] employeeIds) { return this.Session.Query<Resource>() .Where(r => employeeIds.Any(v => v == r.EmployeeId)) .ToArray(); }

Eso arroja NotSupportedException: el tipo de expresión no es compatible: System.Linq.Expressions.TypedParameterException.

En SQL sería algo como:

SELECT * FROM resource WHERE employeeid IN (1, 2, 3)

Mi pregunta es, ¿cómo realizo esta consulta en RavenDB?