使用实体框架将枚举名称存储在数据库中

2024-04-28

public enum Currency
  {
     EUR = 1,
     USD = 2,
     GBP = 3
   }

假设我有一个如上所示的枚举。如果我要使用实体框架(代码优先)来使用它,那么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);
    }
}

source: 布莱恩霍根的例子 http://nodogmablog.bryanhogan.net/2014/11/saving-enums-as-strings-with-entity-framework/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用实体框架将枚举名称存储在数据库中 的相关文章

随机推荐