Если у меня есть обнуляемое битовое поле (под названием «Disabled») и данные следующим образом:Nullable поля Bit истинные или ложные обнаружения
ID | Name | Disabled
--------------------
1 | Mine | null
2 | Yours| 1
Если я затем выполнить следующую Linq To Entities заявления значения не является вернулся:
from r in Rates
where r.Disabled != true
select r
Но если я выполняю этот Linq To Entities заявление:
from r in Rates
where r.Disabled == true
select r
Он возвращает expecte d одна строка с идентификатором 2.
Я хочу, чтобы первый оператор возвращал строку 1, где значение поля «Отключено» равно null.
Я пропустил здесь трюк? Почему первый оператор не возвращает нулевую строку?
Редактировать Позвольте мне перефразировать вопрос ... Почему он не возвращает нулевые строки? Я знаю, что могу поставить простой нулевой чек.
'NULL! = True' return false –
Попробуйте заменить' где r.Disabled! = True' с 'where (r.Disabled ?? false)! = True' Это заменит любой нуль, найденный с помощью false для этого сравнения. –
@JuanCarlosOropeza Это самое нелогичное ... NULL! = True return false означает, что NULL == true?!?!?!?!?!? –