使用NHibernate映射一系列枚举使用NHibernate映射一系列枚举
具体来说,使用映射的属性。
目前我有这个工作映射集合类型Int32和NH似乎照顾它,但它不完全理想。
我试图映射集合时,我收到的错误是“无法确定类型”,因为我试图映射的枚举类型。
我发现一个帖子提到定义一个类为
public class CEnumType : EnumStringType {
public CEnumType() : base(MyEnum) { }
}
然后映射枚举为CEnumType,但是这给“CEnumType没有映射”或类似的东西。
有没有人有过这样的经验?
所以无论如何,只是一个简单的参考代码片段,得到具有
[NHibernate.Mapping.Attributes.Class(Table = "OurClass")]
public class CClass : CBaseObject
{
public enum EAction
{
do_action,
do_other_action
};
private IList<EAction> m_class_actions = new List<EAction>();
[NHibernate.Mapping.Attributes.Bag(0, Table = "ClassActions", Cascade="all", Fetch = CollectionFetchMode.Select, Lazy = false)]
[NHibernate.Mapping.Attributes.Key(1, Column = "Class_ID")]
[NHibernate.Mapping.Attributes.Element(2, Column = "EAction", Type = "Int32")]
public virtual IList<EAction> Actions
{
get { return m_class_actions; }
set { m_class_actions = value;}
}
}
一个例子因此,任何人有正确的属性对我来说,这个映射集合枚举作为实际枚举的?如果将它们作为字符串而不是整数存储在数据库中将会非常好,但它不是完全必要的。