如何将枚举值保存到数据库?

例如:

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

如果我使用Entity-Framework的CodeFirst,我该如何保存这个值?

这适用于Windows窗体,桌面应用程序。

谢谢!

您可以通过简单的强制转换检索int值 (或枚举设置的任何类型)并将其保存到DB。

要读回来,你会从int转换回枚举:

 Permission enumValue = (Permission)intValue; 

您需要了解枚举只是一组命名常量。 这是msdn的引用:

enum关键字用于声明枚举,这是一种由称为枚举器列表的命名常量组成的不同类型。 每个枚举类型都有一个底层类型,除了char之外,它可以是任何整数类型。 枚举元素的默认基础类型是int。 默认情况下,第一个枚举数的值为0,每个连续枚举数的值增加1。

因此,要将值存储在数据库中,您只需存储基础类型并根据需要进行转换/解析。