EF Core 3.1 属性 值 returns 默认字段值
EF Core 3.1 property value returns default field value
我有一个 class 属性 的枚举类型 LogLevel(使用 Microsoft.Extensions.Logging)存储在我的数据库中,还有一个 class 字段未映射但存储枚举类型值:
class ...
{
private LogLevel LevelName;
[Required]
public int Level { get { return (int)LevelName; } set { LevelName = (LogLevel)Level; } }
}
但是由于该字段必须初始化为默认值,所以每次我从数据库中检索值时,我都会为 Level 取回默认值 0,即使它实际上是 3 左右。如果从未设置该值,如何初始化正确的默认值?
您可以在 Entity Framework 核心模型中使用枚举:
public class YourModel
{
public UserSearchStatus SearchStatus { get; set; }
}
像这样的枚举。
public enum UserSearchStatus
{
StatusOne = 1,
StatusTwo = 2
}
如果您不想使用默认值,请使 属性 可为空:
public class YourModel
{
public UserSearchStatus? SearchStatus { get; set; }
}
我有一个 class 属性 的枚举类型 LogLevel(使用 Microsoft.Extensions.Logging)存储在我的数据库中,还有一个 class 字段未映射但存储枚举类型值:
class ...
{
private LogLevel LevelName;
[Required]
public int Level { get { return (int)LevelName; } set { LevelName = (LogLevel)Level; } }
}
但是由于该字段必须初始化为默认值,所以每次我从数据库中检索值时,我都会为 Level 取回默认值 0,即使它实际上是 3 左右。如果从未设置该值,如何初始化正确的默认值?
您可以在 Entity Framework 核心模型中使用枚举:
public class YourModel
{
public UserSearchStatus SearchStatus { get; set; }
}
像这样的枚举。
public enum UserSearchStatus
{
StatusOne = 1,
StatusTwo = 2
}
如果您不想使用默认值,请使 属性 可为空:
public class YourModel
{
public UserSearchStatus? SearchStatus { get; set; }
}