有没有办法使用NHibernate将枚举持久化到数据库中?也就是说,有一个包含枚举中每个值的代码和名称的表。
我想保留没有实体的枚举,但仍然有一个从所有其他引用实体到枚举的表的外键(枚举的int表示)。
发布于 2009-12-15 13:01:18
为什么你们要把这件事复杂化?这真的很简单。
映射如下所示:
<property name="OrganizationType"></property>
模型属性如下所示:
public virtual OrganizationTypes OrganizationType { get; set; }
枚举看起来像这样:
public enum OrganizationTypes
{
NonProfit = 1,
ForProfit = 2
}
NHibernate会自动找出所有的原因。为什么打字比你需要的多?
发布于 2008-11-03 02:33:58
您可以直接使用枚举类型:http://web.archive.org/web/20100225131716/http://graysmatter.codivation.com/post/Justice-Grays-NHibernate-War-Stories-Dont-Use-Int-If-You-Mean-Enum.aspx。如果你的基础类型是一个字符串,它应该使用字符串表示,如果它是数字的,它将只使用数字表示。
但你的问题措辞听起来像是在寻找不同的东西,而不是一个枚举。看起来你想要一个查找表,而不是创建一个单独的实体类。不过,我认为如果不创建一个单独的实体类,就无法做到这一点。
发布于 2008-11-02 17:19:24
一个简单但不是很漂亮的解决方案:
使用创建一个整型字段,并将映射文件中的映射设置为该字段。创建一个使用整型字段的公共属性。
private int myField;
public virtual MyEnum MyProperty
{
get { return (MyEnum)myField; }
set { myField = value; }
}
https://stackoverflow.com/questions/256978
复制相似问题