在数据库中,数字字段可以为 NULL。当我通过 EF 将该表带入我的项目并在 where 子句中对该列进行空检查时,它给我的信息是它始终为真,并且您不能在小数点上检查空值,因为它永远不会等于空值。然而,这在直接 sql 中是有效的。我如何通过 EF 检查数据库中数字列的空值,这只是 EF 和数据库之间的误解吗?
原因示例:
&& l.latitude != null && l.longitude != null
纬度和经度在进入 EF 时是小数,但它们在数据库中可以为 NULL,我想将它们过滤掉
最佳答案
问题在于,即使数据库支持这些列的 null
,您已将它们映射到不可为 null 的类型:decimal
。我相信这会导致 null
值在您的情况下默认为零,这可能不是您想要的。
正确的解决方案是修复您的实体以使用 decimal?
以便正确支持 null
值。
关于c# - 使用 Linq 对数值字段中的空值进行 EF 筛选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39132210/