Entity Framework 从 DbContext 加载实体时核心抛出 SqlNullValueException

Entity Framework Core throws SqlNullValueException when loading entities from DbContext

我在数据库中有这个 MyEntity table:

MyEntity里面的数据如下:

EF Core 实体如下:

public class MyEntity
{
    public int Id { get; set; }
    public int MyInt { get; set; }
}

我遇到异常:

System.Data.SqlTypes.SqlNullValueException: 'Data is Null. This method or property cannot be called on Null values.'

尝试从 DbContext 加载 MyEntity 时:

var myEntities = dbContext.Set<MyEntity>.ToList();

我做错了什么?

您收到此错误是因为 MyEntity 数据库 table 中的 MyIntnullable,并且您尝试加载的其中一行有 MyInt 设置为 null.

要解决此问题,只需将实体中 MyInt 属性 的类型更改为 Nullable<int>int?:

public class MyEntity
{
    public int Id { get; set; }
    public int? MyInt { get; set; }
}