1
54
其他方式:
或
|
2
29
要做的第一件事是进行日志记录,查看生成了什么TSQL;例如:
LINQ to SQL似乎对null的处理有点不一致(取决于文字与值):
即
|
3
5
我的猜测是,这是由于DBMS的一个相当常见的属性——仅仅因为两个东西都为null并不意味着它们相等。 要详细说明一下,请尝试执行以下两个查询:
当您显式检查“field==NULL”时,LINQ可能会将其转换为“fieldisnull”。但是当您使用变量时,我猜LINQ不会自动进行转换。 这是 an MSDN forum post 有关此问题的更多信息。
|
4
4
您需要使用运算符Equals:
等于 fot可为null的类型返回 如果: 返回 错误的
更多信息请点击这里 Nullable<.T>.Equals Method |
5
1
|
6
1
或者你可以简单地使用这个。它还将转换为更好的sql查询
|
7
0
Linq to Entities支持空值协同(?),因此只需将空值实时转换为默认值即可。
|
MuKa · 在父对象的null条件检查之后检查可为null的属性 7 年前 |
Dee J. Doena · 比较两个空可空值 8 年前 |
Konrad Viltersten · 如何让EF理解某些列不可为空? 9 年前 |
Muhammad Nasir · 空对象设计模式与空对象检查 9 年前 |
checketts · 从可空对象创建流的惯用方法 9 年前 |