public enum Currency
{
EUR = 1,
USD = 2,
GBP = 3
}
假设我有一个如上所示的枚举。如果我要使用 Entity Framework (首先使用代码)来使用它,那么
int
值将存储在数据库中。没有存储查找表,也没有存储枚举值的字符串名称,这使得直接读取数据库数据变得困难。有没有办法让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);
}
}
资料来源:example by Bryan Hogan
关于entity-framework - 使用 Entity Framework 将枚举名称存储在数据库中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27509273/