Отображение коллекции перечислений с помощью NHibernate
В частности, используя атрибуты для сопоставлений.
В настоящее время у меня есть это рабочее отображение коллекции типа Int32, и NH, кажется, позаботится об этом, но это не совсем идеально.
Я получаю сообщение об ошибке «Невозможно определить тип» при попытке сопоставить коллекцию с типом перечисления, которое я пытаюсь отобразить.
Я нашел сообщение, в котором говорится, что класс определяется как
public class CEnumType : EnumStringType {
public CEnumType() : base(MyEnum) { }
}
и затем сопоставьте enum как CEnumType, но это дает "CEnumType not mapped" или что-то подобное.
Так у кого-нибудь есть опыт в этом?
Так или иначе, просто фрагмент справочного кода для примера с
[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;}
}
}
Итак, кто-нибудь получил правильные атрибуты для меня, чтобы отобразить эту коллекцию перечислений как фактические перечисления? Было бы неплохо, если бы они также хранились в БД в виде строк, а не в виде целых, но это не является абсолютно необходимым.