使用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;}
}
}
一個例子因此,任何人有正確的屬性對我來說,這個映射集合枚舉作爲實際枚舉的?如果將它們作爲字符串而不是整數存儲在數據庫中將會非常好,但它不是完全必要的。