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/

10-13 01:05