Cartographie une collection de énumérations avec NHibernateune collection de énumérations avec NHibernate
Plus précisément, en utilisant des attributs pour les correspondances.
Actuellement, j'ai cette cartographie de travail de la collection que le type Int32 et NH semble prendre soin de lui, mais ce n'est pas exactement idéal.
L'erreur que je reçois est "Impossible de déterminer le type" lorsque j'essaie de mapper la collection à partir du type de l'énumération que j'essaie de mapper.
J'ai trouvé un poste qui dit de définir une classe comme
public class CEnumType : EnumStringType {
public CEnumType() : base(MyEnum) { }
}
et la carte puis l'ENUM CEnumType, mais cela donne « CEnumType n'est pas mis en correspondance » ou quelque chose de similaire.
Alors, est-ce que quelqu'un a déjà eu cette expérience?
De toute façon, un simple extrait de code de référence pour donner un exemple avec
[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;}
}
}
Ainsi, tout le monde a les attributs corrects pour moi à la carte de cette collection énumérations comme énumérations réelle? Ce serait vraiment bien si elles étaient stockées dans la base de données sous forme de chaînes au lieu d'ints aussi, mais ce n'est pas tout à fait nécessaire.