Способ сделать EF включить метод генерировать внутренние объединения? - PullRequest
3 голосов
/ 11 августа 2010

Использование EF4. У меня есть ситуация, когда запрос linq to EF с явными объединениями не будет работать из-за таблицы «многие ко многим». Я не собираюсь нарушать дизайн базы данных в соответствии с EF, поэтому я хочу использовать метод include. Тем не менее, это всегда создает левые внешние объединения, и мне нужны внутренние объединения (простые context.Table1s.Include("Table2"), где таблицы 1-к-1 или 1-ко-многим, продемонстрируют проблему).

Есть ли способ заставить внутренние объединения?

Ответы [ 2 ]

0 голосов
/ 11 августа 2010

Вы можете контролировать его, написав лучше LINQ

Я задал очень похожий вопрос , который дал мне полезный ответ, который обеспечил решение, так что я смог перевести запрос во внутреннее соединение, что значительно ускорило время выполнения запроса. Особенно второе решение в принятом ответе - это то, которое я использовал впоследствии, потому что я действительно не хотел использовать eSQL, так как я действительно не люблю магические строки. Это вернет меня на 10 лет назад.

0 голосов
/ 11 августа 2010

К сожалению, невозможно заставить EF генерировать запросы определенным образом.

Однако, когда вы добавляете 3 сущности, вы должны видеть только 2 из них в конструкторе, третья - это "отношение".Так, если у вас есть, например, лица, люди, книги и ссуды, вы должны видеть только людей и книги, и у людей должно быть свойство навигации, называемое Books (), которое возвращает все книги, связанные (ссуды) этому человеку.

И если хотите, вы можете также сделать .Include ("Книги") для этого свойства навигации.

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