У меня есть объект 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, а другая таблица содержит ссылки из моего элемента. ПРИМЕЧАНИЕ: у ребенка может быть много родителей.