は、マッピングの属性を使用して、具体的に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;}
}
}
で例を与えるためだけの単純な参照コードスニペット、誰もが正しい属性を得ましたか。 int型ではなく文字列型としてdbに格納されていれば本当にいいですが、完全には必要ではありません。