有没有办法使用NHibernate将枚举持久保存到数据库?这是一个包含代码和枚举中每个值的名称的表.
我想保留没有实体的枚举,但仍然有一个从所有其他引用实体到枚举表的外键(枚举的int表示).
你们为什么要过于复杂呢?这很简单.
映射看起来像这样:
model属性如下所示:
public virtual OrganizationTypes OrganizationType { get; set; }
Enum看起来像这样:
public enum OrganizationTypes { NonProfit = 1, ForProfit = 2 }
NHibernate会自动解决这个问题.为什么打字超过你需要????
您可以直接使用枚举类型:http://web.archive.org/web/20100225131716/http://graysmatter.codivation.com/post/Justice-Grays-NHibernate-War-Stories-Dont-Use-Int- If-You-Mean-Enum.aspx.如果你的底层类型是一个字符串,它应该使用字符串表示,如果它是数字,它将只使用数字表示.
但你的问题措辞听起来像是在寻找不同的东西,而不是一个枚举.您似乎想要一个查找表而不创建单独的实体类.我不认为这可以在不创建单独的实体类的情况下完成.
一个简单但不那么漂亮的解决方案:
创建一个整数字段,并将映射文件中的映射设置为该字段.创建一个使用整数字段的公共属性.
private int myField; public virtual MyEnum MyProperty { get { return (MyEnum)myField; } set { myField = value; } }