Использование .Include для выбора из таблицы сопоставлений, которая заменяется свойствами навигации - PullRequest
0 голосов
/ 15 июля 2011

В моей базе данных у меня есть 3 таблицы Act, ActVisi и Visi. Таблица ActVisi - это таблица связи между таблицами Act и Visi. В модели данных My EF4 таблица сопоставления ActVisi заменяется свойством навигации «многие ко многим» в объектах «Акты» и «Visis».

Я хочу выбрать записи, Visicode = 1 (в таблице ассоциаций ActVisi). Я пробовал запрос ниже, и он работает, когда я удаляю .Include("Visis").Where(Function e.Code = 1), но я получаю все результаты. Как я могу заставить работать следующий запрос. Я подозреваю, что мой лямбда-синтаксис в VB неверен. Ваша помощь приветствуется.

Dim query2 = From li In Objctx.Acts.Include("Visis").Where(Function e.Code = 1)
                    Join fc In Objctx.Cals On li.DATE1 Equals fc.DD
                    Join bl In Objctx.Cals On li.Date2 Equals bl.DD
                    Order By li.Child_ID, bl.Sort_ID, fc.Sort_ID
                    Select Project = li.Child_ID, bl_sort = bl.Sort_Wk, fc_sort = fc.Sort_Wk

1 Ответ

1 голос
/ 15 июля 2011

Ваше условие where ставит условие для кода из "Acts", а не "ActVisis". Есть способ поставить условие на сущность от включения. Пожалуйста, обратитесь к этому сообщению для более подробной информации:

Присоединиться и включить в Entity Framework

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...