Прежде всего, вы должны объявить свой List<Child>
как IList<Child>
, потому что NHibernate должен иметь возможность использовать свой собственный тип коллекции, который реализует IList.
В вашем отображении вы должны использовать элемент 'bag' для отображения вашего Списка. (Вы уверены, что хотите использовать Список, а не Набор? Поскольку Список позволяет, чтобы одна единственная сущность встречалась в списке более одного раза, тогда как Набор не допускает этого).
Вот как я должен это сделать:
public class Parent
{
private IList<Child> _children = new List<Child>();
public ReadOnlyCollection<Child> Children
{
get {return _children.AsReadOnly();}
}
}
И отображение:
<class name="Parent" table="Parent">
<list name="Children" table="..." access="field.camelcase-underscore" inverse="true">
<key column="..." />
<one-to-many class="Child" />
</list>
</class>
(для краткости опущены все остальные свойства)
(Ой, теперь, когда я это вижу, вы используете Hibernate? Мой пример кода на C #, поэтому я не знаю, есть ли у вас понятие ReadOnlyCollection и т. Д ...)