2010-12-09 3 views
0

Я пытаюсь преобразовать следующую строку SQL в LINQ код:IsNull и обнуляемых типов в LINQ

AND IsNull(Deleted,0) = 0 

я пытался, делая это:

&& Deleted != null ? Deleted : false 

И это:

&& (bool)Deleted != null ? (bool)Deleted : false 

Первая попытка дала мне ошибку, так как Deleted является типом NULL, а вторая попытка не возвращает тот же набор данных, что и t он оригинальный SQL. Может ли кто-нибудь сказать мне, что я делаю неправильно?

ответ

1

Вы можете использовать

& & Deleted.GetValueOrDefault (ложь) == ложный

+1

Если по умолчанию имеет тип BOOL ?, то оно должно быть `&& Deleted.GetValueOrDefault (ложь) == false` или просто `&&! Deleted.GetValueOrDefault (false)`. – CGK 2010-12-09 12:21:55

1

LINQ;

where !(u.Deleted ?? false)

выход SQL:.

ГДЕ (случай, когда ([Extent1] [Исключен] IS NULL) затем отливали (0, как бит) ИНАЧЕ [Extent1] [. Исключен] END) <> литая (1 в бит)

Смежные вопросы