Nullable位字段的真或假检测
本文关键字:检测 字段 Nullable | 更新日期: 2023-09-27 18:18:18
如果我有一个可空位字段(名为'Disabled'),数据如下:
ID | Name | Disabled
--------------------
1 | Mine | null
2 | Yours| 1
如果我然后执行以下Linq To Entities语句,则不返回任何值:
from r in Rates
where r.Disabled != true
select r
但是如果我执行Linq To Entities语句:
from r in Rates
where r.Disabled == true
select r
返回ID为2的预期一行。
我希望第一个语句返回行1,其中'Disabled'字段的值为null。
我错过了一个技巧吗?为什么第一个语句不返回空值行?
编辑让我重新表述这个问题…为什么不返回空行?我知道我可以输入一个简单的空检查
from r in Rates
where r.Disabled != true
|| r.Disabled IS NULL
select r
正如您所说,您有一个可空bool。您可以通过HasValue
检查null
bool? nullableBool = null;
if (nullableBool.HasValue == false)
{
//Null
}
如果您想将false
和null
视为"NOT TRUE",那么您可以使用GetValueOrDefault
属性
bool? nullableBool = false;
或bool? nullableBool = false;
在这两种情况中的任何一种情况下,都满足if
条件。
if (!nullableBool.GetValueOrDefault(false))
{
}
您可以在代码中使用这些逻辑