Как бороться со строковым перечислением в базе данных? - PullRequest
0 голосов
/ 04 февраля 2020

Я работаю со старой базой данных, где все сохраняется в виде строки. У меня есть таблица клиента, и эта таблица имеет столбец состояния. Я также сначала использую код структуры сущности. Все еще версия 6. Я использовал систему обратного инжиниринга, чтобы сначала запустить код из базы данных.

        [StringLength(1)]
        public string status { get; set; }

Вам нужно понять, что все, что должно быть перечислением в хорошем дизайне базы данных, является строкой в моя база данных В моем C# я бы хотел использовать enum. Как я могу сохранить перечисление как строку по умолчанию в моей базе данных и прочитать, есть ли строка, и проанализировать ее как перечисление?

1 Ответ

1 голос
/ 04 февраля 2020

Учитывая

public enum MyFunkyEnum
{
   SomeValue
}

Вы можете просто использовать вычисленное свойство, которого нет в фактической схеме БД

public string status { get; set; }

public MyFunkyEnum MyFunkyEnumStatus => (MyFunkyEnum)Enum.Parse(typeof(MyFunkyEnum), status);

Примечание : вам нужно будет использовать логику c, если у вас есть нулевые или пустые строки

или оба направления

[NotMapped]
public MyFunkyEnum  MyFunkyEnumStatus
{
    get => (MyFunkyEnum) Enum.Parse(typeof(MyFunkyEnum), status);
    set => status = value.ToString();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...