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; }
}