流利的Nhibernate离开加入

时间:2009-08-30 16:03:41

标签: fluent-nhibernate nhibernate-mapping

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

我的复合用户实体由一个表(“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 个答案:

答案 0 :(得分:26)

尝试Optional()方法。

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

答案 1 :(得分:0)

只有这对我有用(NH 3.3):

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

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