Я не знаком с Linq, но в целом:
NULL
представляет отсутствующее, неизвестное или неопределенное значение. Строго говоря, переменная не может быть равна NULL
; Языки низкого уровня, которые предоставляют эту конструкцию, обычно делают это для удобства, потому что нет легкой альтернативы - на более высоком уровне обычно лучше полагаться на ISNULL
, defined
или на то, что поддерживает ваш язык.
Одна неопределенная переменная не равна другой неопределенной переменной (то же самое относится и к NULL == NULL). У Джо Селко есть хороший пример написания запроса, чтобы найти всех людей, чей цвет волос соответствует цвету автомобиля, на котором они едут. Должен ли этот запрос соответствовать лысому мужчине, который ходит повсюду?