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
相关产品推荐
相关产品推荐

