代码之家  ›  专栏  ›  技术社区  ›  gt124

nhibernate queryover不急于加载多对多joinalias

  •  4
  • gt124  · 技术社区  · 15 年前

    我正在尝试从我的用户对象的多对多集合中急切地加载角色。

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

    2 回复  |  直到 13 年前
        1
  •  13
  •   Community Mohan Dere    9 年前

    另一种实现紧急加载的方法是设置LeftOuterJoin。它帮助了我们 similar scenario

    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);
    
        2
  •  1
  •   Diego Mijelshon    15 年前

    如果要使用紧急加载,则需要使用子查询进行筛选。在同一个集合上。