Отображение коллекции перечислений с 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;}
}
}
Итак, кто получил правильные атрибуты для меня отобразить эту коллекцию перечислений, так как фактические перечислений? Было бы очень приятно, если бы они были сохранены в db как строки вместо ints, но это не совсем необходимо.