Вот мой запрос:ошибка с Entity Framework .any() фильтр
var x = db
.Users
.Where(u => u.Locations.Any(l => searchedLocation.Counties.Any(c => c.LocationId == l.LocationId));
Контекст:
Users
являетсяIQueryable<User>
. (Набор объектов EF)searchedLocation
-Location
объект.Counties
являетсяICollection<MiniLocation>
.
Что я пытаюсь сделать:
Возвращение всех пользователей, где любой из графств для тех местах, имеют locationId любого из округов, входящих в искомом месте.
Пример:
Поиск в Нью-Йорк (LocationId = 1. County1LocationId = 2)
Пользователь: Bob. Местоположения: Сохо. County1LocationId = 2. County2 LocationId = 3.
Так что это матч. (Потому что Сохо есть графство с LocationId 2, и так же NYC)
Ошибки я получаю:
Невозможно создать постоянное значение «xxx.xxx.Locations.MiniLocation» типа , В этом контексте поддерживаются только примитивные типы (такие как Int32, String и Guid).
Любые идеи?
ли вы попробовать с .join()? –