流利NHibernate的左连接(Fluent Nhibernate left join)

2019-08-03 03:34发布

我要地图是导致左外一个类参与,而不是在肠子加入。

我的复合用户实体由一个表(“aspnet_users”)和一些可选属性在第二表(象全名中的“用户”)制成。

  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);

                        });
    }
}

该映射结果中内连接选择所以没有结果出来是第二表作为没有数据。 我想产生一个左联接。

这是可能只在查询级别?

Answer 1:

尝试Optional()方法。

Join("Users", m =>
{
  m.Optional();
  m.Map(x => x.FullName);
});


Answer 2:

只有这样为我做的工作(NH 3.3):

Join("OuterJoinTable",
                m =>
                {
                    m.Fetch.Join().Optional();
                    m.KeyColumn("ForeignKeyColumn");

                    m.Map(t => t.Field, "FieldName");
                });


文章来源: Fluent Nhibernate left join