Значение свойства EF Core 3.1 возвращает значение поля по умолчанию - PullRequest
0 голосов
/ 20 марта 2020

У меня есть свойство класса перечислимого типа LogLevel (с использованием Microsoft.Extensions.Logging), хранящееся в моей базе данных, и поле класса, которое не сопоставлено, но сохраняет значение типа перечисления следующим образом:

class ...
{
        private LogLevel LevelName;
        [Required]
        public int Level { get { return (int)LevelName; } set { LevelName = (LogLevel)Level; } }
}

Но так как поле должно быть инициализировано как значение по умолчанию, каждый раз, когда я получаю значение из базы данных, я возвращаю значение по умолчанию 0 для уровня, даже если оно действительно равно 3 или что-то еще. Если значение никогда не устанавливается, как я могу инициализировать правильное значение по умолчанию?

1 Ответ

1 голос
/ 20 марта 2020

Вы можете использовать перечисления в моделях Entity Framework Core:

public class YourModel
{
    public UserSearchStatus SearchStatus { get; set; }
}

с таким перечислением.

public enum UserSearchStatus
{
    StatusOne = 1,
    StatusTwo = 2
}

Если вы не хотите использовать значение по умолчанию, сделайте свойство обнуляемое:

public class YourModel
{
    public UserSearchStatus? SearchStatus { get; set; }
}
...