0
我有一個與IRole對象相關的IUser對象列表。這些IRole對象又是與IPrivilege對象相關的MTM。在NHibernate中未加載的依賴對象中的集合
當檢索一個IUser對象時,我可以在該IUser的(IList)列表中看到所有相關的IRole對象。
當檢索一個IRole對象時,我可以在該IRole的(IList)列表中看到所有相關的IPrivilege對象。
但是,當我獲取用戶並從該用戶角色列表中檢查一個角色時,該角色對象中的特權列表爲空(列表在直接提取角色時正確初始化)。
看起來好像NHibernate沒有在我的設置中獲取相關對象的相關對象。我究竟做錯了什麼?我如何讓NHibernate完全初始化用戶角色列表中的所有角色對象,以便每個角色都能顯示相關特權列表?
BTW:注意!我是NHibernate的新手!
編輯(@Firo):
這些是從IUSER和IRole的關係的映射片段:
(IUSER)
...
HasManyToMany<HbnRole>(x => x.Roles).Table("USERROLEMAP")
.ParentKeyColumn("USERID")
.ChildKeyColumn("ROLEID")
.Cascade.All();
(IRole)
...
HasManyToMany<HbnPrivilege>(x => x.Privileges).Table("ROLEPRIVILEGEMAP")
.ParentKeyColumn("ROLEID")
.ChildKeyColumn("PRIVILEGEID")
.Cascade.All();
HasManyToMany<HbnUser>(x => x.Users).Table("USERROLEMAP")
.Inverse()
.LazyLoad()
.ParentKeyColumn("ROLEID")
.ChildKeyColumn("USERID");
(IPrivilege)
...
HasManyToMany<HbnRole>(x => x.Roles).Table("ROLEPRIVILEGEMAP")
.Inverse()
.LazyLoad()
.ParentKeyColumn("PRIVILEGEID")
.ChildKeyColumn("ROLEID");
說實話,我不知道如何捕捉查詢... :-(
你能告訴我們用戶和角色和查詢的映射嗎? – Firo