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

流畅的Nhibernate左连接

  •  16
  • Brian  · 技术社区  · 16 年前

    我想映射一个导致左外部联接而不是内部联接的类。

    我的复合用户实体由一个表(“aspnet_users”)和第二个表中的一些可选属性(如“users”中的FullName)组成。

      public class UserMap : ClassMap<User> {
        public UserMap() {
            Table("aspnet_Users");
            Id(x => x.Id, "UserId").GeneratedBy.Guid();
            Map(x => x.UserName, "UserName");
            Map(x => x.LoweredUserName, "LoweredUserName");
    
           Join("Users",mm=>
                            {
                                mm.Map(xx => xx.FullName);
    
                            });
        }
    }
    

    这种映射会导致一个内部联接选择,因此没有结果会显示为第二个表,因为没有数据。我想生成一个左连接。

    2 回复  |  直到 16 年前
        1
  •  27
  •   James Gregory    16 年前

    试试 Optional() 方法

    Join("Users", m =>
    {
      m.Optional();
      m.Map(x => x.FullName);
    });
    
        2
  •  0
  •   Stephane Ehret    12 年前

    Join("OuterJoinTable",
                    m =>
                    {
                        m.Fetch.Join().Optional();
                        m.KeyColumn("ForeignKeyColumn");
    
                        m.Map(t => t.Field, "FieldName");
                    });
    
    推荐文章