У меня есть приложение asp.net C #, использующее EF4 для подключения к базе данных SQL Server.
В базе данных между двумя таблицами, Officer
и Geography
, у меня есть отношение "многие ко многим", поэтому существует еще одна таблица с именем OfficerGeography
, которая связывает эти две таблицы.
С помощью этой базы данных, используемой для создания диаграммы edmx, EF4 правильно видит соотношение между многими этими двумя таблицами.
Проблема
У меня есть List<int>
geographyIds, которые соответствуют первичному ключу таблицы Geography
.
Я хочу использовать этот список для получения офицеров с географическим идентификатором, которые появляются в этом списке. Я думал, что следующий LINQ будет работать:
var geographyIds = new List<int>() { 1, 2, 3, 4, 5 };
var officers = db.Officers.Where(o => o.Enabled == true && geographyIds.Contains(o.Geographies.GeographyId));
Однако это не удалось. На самом деле intellisense не будет перечислять какие-либо столбцы для o.Geographies
(из-за связи многих со многими).
Как я могу получить список офицеров, у которых есть совпадение с GeographyId?
Дополнительные уточнения
Таблица базы данных OfficerGeography
не отображается как собственная сущность в EF4. EF4 правильно видит только Officer
и Geography
со свойством навигации от одного к другому на обоих объектах.