nhibernate queryover没有急切地加载多对多的joinalias

gt1*_*124 4 nhibernate

我正试图在我的User对象的多对多集合中加载角色.

Role role = null;
IQueryOver<User, User> query = session.QueryOver<User>()
                                .Fetch( p => p.Roles).Eager
                                .JoinAlias( q => q.Roles, () => role)
                                .Where(() => role.Active == true);
Run Code Online (Sandbox Code Playgroud)

给我留下了未初始化角色成员的用户对象.如果我删除joinalias,它们初始化就好了.这只是一个NH3错误还是我做错了什么?

Sly*_*Sly 13

另一种产生热切负荷的方法是设置LeftOuterJoin.它在类似的情况下帮助了我们

Role role = null;
IQueryOver<User, User> query = session.QueryOver<User>().Fetch( p => p.Roles).Eager
                                                        .JoinAlias( q => q.Roles, () => role, JoinType.LeftOuterJoin)
                                                        .Where(() => role.Active == true);
Run Code Online (Sandbox Code Playgroud)