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