У меня есть список объектов IUser, которые являются MTM, связанными с объектами IRole. Эти объекты IRole в свою очередь являются MTM, связанными с объектами IPrivilege.Коллекции в зависимых объектах, не загруженных в NHibernate
При извлечении объекта IUser я вижу все связанные объекты IRole в списке (IList) этого IUser.
При получении объекта IRole я могу видеть все связанные объекты IPrivilege в списке (IList) этого IRole.
Но когда я получаю пользователя и проверяю одну роль из этого списка ролей пользователей, список привилегий в этом ролевом объекте пуст (список правильно инициализируется при непосредственном получении роли).
Похоже, что 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