Как сохранить значение перечисления в базе данных? - PullRequest
3 голосов
/ 24 марта 2011

Например:

namespace PizzaSoftware.Data
{
    public class User
    {
        public string Username { get; set; }
        public string Password { get; set; }
        public Permission PermissionType { get; set; }
    }

    public enum Permission
    {
        Basic,
        Administrator
    }
}

Если бы я использовал CodeFirst Entity-Framework, как я могу сохранить это значение?

Это для приложений Windows Forms, Desktop.

Спасибо!

Ответы [ 2 ]

7 голосов
/ 24 марта 2011

Вы можете получить значение int (или любой другой тип, для которого вы установили enum) с помощью простого приведения и сохранить его в БД.

И чтобы прочитать его обратно, вы должны привести от int обратно к enum:

Permission enumValue = (Permission)intValue;
0 голосов
/ 24 марта 2011

Вы должны понимать, что перечисление - это просто набор именованных констант.Вот цитата из msdn:

Ключевое слово enum используется для объявления перечисления, особого типа, состоящего из набора именованных констант, называемых списком перечислителя.Каждый тип перечисления имеет базовый тип, который может быть любым целым типом, кроме char.Основной тип элементов перечисления по умолчанию - int.По умолчанию первый перечислитель имеет значение 0, а значение каждого последующего перечислителя увеличивается на 1.

Поэтому, чтобы сохранить значение в базе данных, вы просто сохраняете базовый тип и приводите / анализируетепо мере необходимости.

...