Linq to sql LINQ中的IsNull和可空类型

Linq to sql LINQ中的IsNull和可空类型,linq-to-sql,Linq To Sql,我正在尝试将以下SQL行转换为LINQ代码: AND IsNull(Deleted,0) = 0 我尝试过这样做: && Deleted != null ? Deleted : false 这是: && (bool)Deleted != null ? (bool)Deleted : false 第一次尝试给了我一个错误,因为Deleted是一个可为null的类型,第二次尝试没有返回与原始SQL相同的数据集。谁能告诉我我做错了什么吗?你可以用 &&已删除。Ge

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

AND IsNull(Deleted,0) = 0
我尝试过这样做:

&& Deleted != null ? Deleted : false
这是:

&& (bool)Deleted != null ? (bool)Deleted : false
第一次尝试给了我一个错误,因为Deleted是一个可为null的类型,第二次尝试没有返回与原始SQL相同的数据集。谁能告诉我我做错了什么吗?

你可以用

&&已删除。GetValuerDefault(false)=false

linq

在哪里!(美国删除??错误)

sql输出:

其中(当([Extent1].[Deleted]为NULL时的情况)然后强制转换(0为位)否则[Extent1].[Deleted]结束)强制转换(1为位)


如果默认值的类型为bool?,那么它应该是
&&Deleted。GetValueOrDefault(false)==false
或干脆
&!已删除。GetValueOrDefault(false)
。谢谢……出于兴趣,如果类型是bool而不是bool?,正确的语法是什么?如果列可为null,则通常会映射到可为null的类型,这样您就不会有bool了?除非该列可为空。