Это ОЧЕНЬ неправильно, потому что он будет выбирать все записи, где значение совпадает, и все записи, где что-то равно нулю, даже если вы запрашиваете значение.

у выполнить такой запрос

   var result = from entry in table
                     where entry.something == null
                     select entry;

и получитьIS NULL генерироваться.

Отредактировано: после первых двух ответов я чувствую необходимость уточнить, что я использую Entity Framework, а не Linq to SQL. Метод object.Equals (), похоже, не работает в EF.

Изменить № 2: вышеупомянутый запрос работает как задумано. Правильно генерируетIS NULL, Мой производственный код однако был

value = null;
var result = from entry in table
                         where entry.something == value
                         select entry;

и сгенерированный SQL былsomething = @p; @p = NULL, Кажется, что EF правильно переводит константное выражение, но если переменная задействована, она воспринимает это как обычное сравнение. Имеет смысл на самом деле. Я закрою этот вопрос

Ответы на вопрос(14)

Ваш ответ на вопрос