Я просто понял, что, когда я прошу этоПочему Linq подстрока() игнорировать нулевое значение
Orders.Where(y => y.Sub_Item_Id.Substring(0, 10) != y.Sub_Item_Site_Id.Substring(0, 10))
Запрос игнорировать все мое нулевое значение, которое может существовать в y.Sub_Item_Site_Id
. Поэтому, когда у меня есть значение в Sub_Item_Id и null в Sub_Item_Site_Id, запрос НЕ рассматривает это как !=
.
Почему?
Я также протестировал тот же запрос с SQL
select
*
from
orders as o
where
LEFT(o.sub_item_id, 10) <> LEFT(o.sub_item_site_id, 10)
И я получаю тот же результат. У меня все свое значение, но НЕ, когда у меня есть значение в o.sub_item_id и null в o.sub_item_site_id.
Не могли бы вы объяснить, как и почему SQL и Linq работают следующим образом.
Извините, но если система генерирует excpetions, и это исключение являются дескриптором самой системы, результатом является то, что система игнорирует что-то. Да, ок. Таким образом, запрос Linq игнорирует эту строку, поскольку вы считаете, что система генерирует исключение. Так как насчет SQL-запроса? То же самое, LEFT() генерирует исключение? –