Aquí está mi consulta:de error con Entity Framework .Any() Filtro
var x = db
.Users
.Where(u => u.Locations.Any(l => searchedLocation.Counties.Any(c => c.LocationId == l.LocationId));
Contexto:
Users
esIQueryable<User>
. (Conjunto de objetos EF)searchedLocation
es un objetoLocation
.Counties
es unICollection<MiniLocation>
.
lo que estoy tratando de hacer:
Volver a todos los usuarios, en los que cualquiera de los condados de esos lugares tienen una LocationID de cualquiera de los condados pertenecientes a la ubicación buscada.
Ejemplo:
Búsqueda de la ciudad de Nueva York (LocationID = 1. County1LocationId = 2)
usuario: Bob. Ubicaciones: Soho. County1LocationId = 2. County2 LocationId = 3.
Así que eso es una coincidencia. (Porque Soho tener un condado con una LocationID de 2, y lo mismo ocurre NYC)
error que recibo:
No se puede crear un valor constante de tipo 'xxx.xxx.Locations.MiniLocation' . En este contexto solo se admiten tipos primitivos ('como Int32, String y Guid').
¿Alguna idea?
¿Probaste con .join()? –