我有一個問題,試圖找出一個多對多的關係,其中關係的兩邊引用相同的實體。我使用流利NHibernate和NH3.1。流利nhibernate - 在同一個實體上的多對多關係映射
基本上,情況是這樣的 - 我有一個類別,它可以有多個父母。因此,一個類別具有多個其他類別作爲父母,以及多個其他類別作爲其子類。
HasManyToMany(x => x.ParentCategories).AsBag().Table("parentcategorychildren").ParentKeyColumn("ChildID").ChildKeyColumn("ParentID").Cascade.SaveUpdate();
HasManyToMany(x => x.ChildrenCategories).AsBag().Table("parentcategorychildren").ParentKeyColumn("ParentID").ChildKeyColumn("ChildID").Inverse();
但是,當我嘗試建立了工廠,我得到以下錯誤:
The relationship Category.ChildrenCategories to Category.ChildrenCategories has Inverse specified on both sides. Remove Inverse from one side of the relationship.
什麼我發現奇怪的是爲什麼會提「Category.ChildrenCategories」到Category.ChildrenCategories,而不是ParentCategories?
任何幫助將不勝感激!
我剛剛爲此創造了一筆賞金,因爲它對我來說很重要。請,我對「你不能做這個」感興趣,作爲答案。
我們有完全相同的問題。答案將不勝感激。 – 2011-05-11 18:11:33
如果確實是FNH中的一個錯誤,那麼您可以始終使用傳統的xml映射或答案中提供的解決方法。 – Vadim 2011-05-12 21:12:08
我爲此提出了[問題](http://fluentnhibernate.lighthouseapp.com/projects/33236-fnh/tickets/212-inverse-validation-fails-on-self-referential-relationships)。我們將盡快解決。 – 2011-05-16 11:43:59