You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EF Core 7读取含空值数据库至可空类型时报错

EF Core 7读取可空int字段为null时抛出InvalidOperationException的问题

我使用EF Core 7执行数据库查询,将表中数据映射到实体对象,其中实体类的一个属性定义为可空int类型:

public int? Index { get; set; }

但当表中该字段存在值为null的行时,EF Core抛出以下错误:

System.InvalidOperationException: 'An error occurred while reading a database value for property 'ProductOrderProperty.Index'.
The expected type was 'System.Nullable`1[System.Int32]' but the actual value was null.'

看起来EF Core对可空类型的实际null值感到异常,请问这是什么原因导致的?

编辑:问题已解决
经排查,是Index属性被意外标记为主键。主键在数据库中要求非空,EF Core会强制将主键属性视为不可空,即便代码里定义成int?也会忽略这个可空配置,因此当数据库中该字段实际为null时,就会触发类型不匹配的错误。

内容的提问来源于stack exchange,提问作者jvanderwoude

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 18:12:31