public enum Currency
{
EUR = 1,
USD = 2,
GBP = 3
}
假设我有一个上面展示的枚举。如果我使用Entity Framework(code first)来使用它,那么 int
值将存储在数据库中。 不会存储查找表或枚举值的字符串名称,这使得直接读取数据库数据变得困难。
是否有一种方法可以让EF为枚举创建查找表?
如果我想让EF为枚举创建查找表,该怎么办?
public enum Currency
{
EUR = 1,
USD = 2,
GBP = 3
}
假设我有一个上面展示的枚举。如果我使用Entity Framework(code first)来使用它,那么 int
值将存储在数据库中。 不会存储查找表或枚举值的字符串名称,这使得直接读取数据库数据变得困难。
是否有一种方法可以让EF为枚举创建查找表?
如果我想让EF为枚举创建查找表,该怎么办?
public enum Currency
{
EUR = 1,
USD = 2,
GBP = 3
}
public class YourClassName
{
[Column("Currency")]
public string CurrencyString
{
get { return Currency.ToString(); }
private set { Currency = EnumExtensions.ParseEnum<Currency>(value); }
}
[NotMapped]
public Currency Currency;
}
public class EnumExtensions
{
public static T ParseEnum<T>(string value)
{
return (T)Enum.Parse(typeof(T), value, true);
}
}
source: example by Bryan Hogan