c# - 使用 Linq 对数值字段中的空值进行 EF 筛选

标签 c# .net entity-framework

在数据库中,数字字段可以为 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/

相关文章:

c# - 没有为此对象定义无参数构造函数-nop commerce 2.6

C# 从 MySQL 中的表填充 Visual Studio 2015 中的 dataTable

c# - 清除通用 Windows 应用程序中存储的凭据

c# - 更改计时器滴答事件的参数

c# - EF Code-First 继承单个基类以实现简单的历史性

c# - DataGridView 单元格对齐不起作用

.net - 使用 .Net/C# 计算集合的频率分布

.net - String.Format(格式,日期)正在忽略格式

c# - 单元测试和 Entity Framework

asp.net - 未选取 EF 的 Azure 网站连接字符串