2010-03-30 82 views
0

我想映射流利NHibernate中的manyToMany關係,並運行到最有可能只是我在工具中的新問題。在這兩個實體中的多對多集合流利NHibernate

我有2個實體,用戶和項目。用戶可以在許多項目上,項目可以有很多用戶。

在我的地圖用戶我有

 HasManyToMany(x => x.Projects).Inverse(); 

當我把相同的地圖項目我得到一個異常,因爲表名是相反的。此外,我還以爲我沒有需要在此基礎上一篇:Fluent NHibernate Many-to-Many

我踩着通過這個,看看它是否工作:

 var user = _userRepository.FindByUserName("Josh"); 
    var projects = user.Projects; 
    var user2 = projects[0].Users; 

什麼情況是項目返回包含我的項目的集合。但是User2是空的。我希望user2是一個包含與用戶相同的用戶的集合。

那麼我做錯了什麼。謝謝。

+0

另外需要注意的我想,映射W/O型逆和它沒有工作方式無論是。 – JoshReedSchramm 2010-03-30 20:14:07

回答

2

嘗試將.Inverse()僅放在一個映射上。

用戶映射:

HasManyToMany(x => x.Projects).Inverse(); 

ProjectMap:

HasManyToMany(x => x.Users); 

如果好好嘗試一下工作嘗試specifing表名。

用戶映射:

HasManyToMany(x => x.Projects).Inverse().Table("ProjectUser"); 

ProjectMap:

HasManyToMany(x => x.Users).Table("ProjectUser"); 
+0

我能夠通過在其中一個映射上執行Inverse()和Table來完成這項工作。奇怪的是,Fluent假設表格名稱是非反轉的,它是ProjectToUser,但是假設爲ProjectsToUsers(複數)。不知道爲什麼這是不同的,看起來像一個錯誤。 謝謝 – JoshReedSchramm 2010-03-31 14:39:52

相關問題