LINQ中的IsNull和可空类型

时间:2010-12-09 12:04:09

标签: linq-to-sql

我正在尝试将以下SQL行转换为LINQ代码:

AND IsNull(Deleted,0) = 0

我试过这样做:

&& Deleted != null ? Deleted : false

而且:

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

第一次尝试给了我一个错误,因为Deleted是一个可空类型,第二次尝试不会返回与原始SQL相同的数据集。谁能告诉我我做错了什么?

2 个答案:

答案 0 :(得分:1)

您可以使用

&安培;&安培; Deleted.GetValueOrDefault(false)== false

答案 1 :(得分:1)

LINQ;

  

where !(u.Deleted ?? false)

sql输出:

  

WHERE(CASE WHEN([Extent1]。[Deleted] IS NULL)THEN cast(0 as bit)ELSE [Extent1]。[Deleted] END)<>演员(1位)