MySql, Entity Framework, Inner Joins с генерируемыми нулевыми проверками - PullRequest
0 голосов
/ 28 июля 2010

Я поиграл с Entity Framework и драйвером MySQL.Извините, если это глупый вопрос.Таблица объявлений имеет ФК к ПК вакансий.Оба поля помечены как NOT NULL.Я выполняю простое объединение:

 var qry = (from vacancy in context.vacancies
                       join advert in context.adverts on vacancy.id equals advert.vacancies.id
                       where advert.status == 1
                       select
                         new
                             {
                                 Id = advert.id
                             })
                            ;

Это генерирует следующий SQL:

SELECT 1 AS C1, Extent2.id FROM vacancies AS Extent1 
    INNER JOIN adverts AS Extent2 ON (Extent1.id = Extent2.vacancy_id) OR ((Extent1.id IS  NULL) AND (Extent2.vacancy_id IS  NULL))
    WHERE 1 = Extent2.status

Почему EF генерирует условия "IS NULL" для объединения, когда столбцыпомечены как обнуляемые?

Спасибо,

Боб

1 Ответ

0 голосов
/ 28 июля 2010
  1. Это поставщик, а не EF, который генерирует SQL.
  2. В любом случае запрос неверен. Как правило, неправильно использовать join , и все, что делает это объединение, ограничивает результаты объявлениями с вакансией, которые, как вы говорите, в любом случае не обнуляются.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...