我有一个带有自定义列表的类,它继承自 List 并且无法使 NHibernate 映射工作。
public class MyClass
{
private MyList<Foo> foos;
public virtual MyList<Foo> Foos
{
get { return foos; }
set { foos= value; }
}
}
<bag name="Foos" access="property" cascade="all-delete-orphan" batch-size="5">
<key column="MyClassId"/>
<one-to-many class="Domain.Model.MyClass, Domain"/>
</bag>
我得到了例外
无法转换类型为“NHibernate.Collection.Generic.PersistentGenericBag
1[Domain.Model.Foo]' to type 'Domain.Model.MyList
1[Domain.Model.Foo]”的对象。
在这个博客之后,我尝试将包包在一个组件中,
<component name="Foos" access="nosetter.camelcase-underscore">
<bag name="Foos" access="property" cascade="all-delete-orphan" batch-size="5">
<key column="MyClassId"/>
<one-to-many class="Domain.Model.MyClass, Domain"/>
</bag>
</component>
导致错误
在“Domain.Model.MyList`1[Domain.Model.Foo]”类中找不到属性“Foos”的吸气剂
MyList 只有一个添加对象的方法。
public class MyList<T> : List<T>
{
public new void Add(T item)
{
//custom stuff
base.Add(item);
}
}