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(使用前将#替换为@)