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 中的 MyInt
是 nullable
,并且您尝试加载的其中一行有 MyInt
设置为 null
.
要解决此问题,只需将实体中 MyInt
属性 的类型更改为 Nullable<int>
或 int?
:
public class MyEntity
{
public int Id { get; set; }
public int? MyInt { get; set; }
}
我在数据库中有这个 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 中的 MyInt
是 nullable
,并且您尝试加载的其中一行有 MyInt
设置为 null
.
要解决此问题,只需将实体中 MyInt
属性 的类型更改为 Nullable<int>
或 int?
:
public class MyEntity
{
public int Id { get; set; }
public int? MyInt { get; set; }
}