0
我有2個表具有循環依賴性。 A Title
具有Element
s,並且每個Element
指向路徑中的下一個Title
。如何解決映射中的循環依賴關係?
然而,當我打電話BuildSessionFactory()
我的NHibernate.Cfg.Configuration
比如我收到以下異常: ElementDAO
我相信這一點:
從表元素是指未映射類的關聯是循環依賴關係的結果(它不能首先映射Title,因爲它引用了Element,並且它不能在不知道Title的情況下映射Element)。
問題: 如何結合兩個映射來解決循環依賴?
相關數據(和代碼段)如下:
標題
- ID(主鍵)
- 名稱
元
- id_Title(外鍵)
- 名稱
- id_Title_Child(外鍵)
他們代表了數據結構,像這樣:
我的代碼:
TitleDAO:
public class TitleDAO{ public virtual int Id { get; set; } public virtual string Name { get; set; } public virtual ICollection<ElementDAO> Elements { get; set; } }
TitleDAO映射:
<class name="TitleDAO" table="Title" lazy="true"> <id name="Id"> <generator class="identity"/> </id> <property name="Name"/> <set name="Elements" table="Element" lazy="true"> <key column="id_Title"/> <many-to-many class="ElementDAO"/> </set> </class>
ElementDAO:
public class ElementDAO{ public virtual string Name { get; set; } public virtual TitleDAO Child { get; set; } }
ElementDAO映射:
<class name="ElementDAO" table="Element" lazy="true"> <property name="Name"/> <many-to-one name="Child" class="TitleDAO" column="id_Title_Child"/> </class>