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?