У меня есть объект MyItem, который ссылается на дочерние элементы в том же элементе. Как мне настроить файл сопоставления nhibernate для хранения этого элемента?
public class MyItem
{
public virtual string Id {get;set;}
public virtual string Name {get;set;}
public virtual string Version {get;set;}
public virtual IList<MyItem> Children {get;set;}
}
Примерно hbm.xml будет выглядеть так:
<class name="MyItem" table="tb_myitem">
<id name="Id" column="id" type="String" length="32">
<generator class="uuid.hex" />
</id>
<property name="Name" column="name" />
<property name="Version" column="version" />
<bag name="Children" cascade="all-delete-orphan" lazy="false">
<key column="children_id" />
<one-to-many class="MyItem" not-found="ignore"/>
</bag>
</class>
Думаю, это не сработает. Возможно, мне нужно создать другой класс, скажем MyItemChildren, и использовать его в качестве члена Children, а затем выполнить сопоставление в этом классе?
Это означало бы наличие двух таблиц. В одной таблице содержится MyItem, а в другой - ссылки на мой элемент. ПРИМЕЧАНИЕ. У дочернего элемента может быть много родителей.