isessionfactory fluentnhibernate fluently fluent-nhibernate nhibernate-mapping

fluent nhibernate - fluentnhibernate - Fluido Nhibernate left join



fluently fluent-nhibernate (2)

Quiero mapear una clase que resulte en una combinación externa izquierda y no en una combinación interna.

Mi entidad de usuario compuesta está formada por una tabla ("aspnet_users") y algunas propiedades opcionales en una segunda tabla (como FullName en "usuarios").

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

este resultado de mapeo en una selección de unión interna por lo que no se obtiene ningún resultado es la segunda tabla, ya que no hay datos. Me gustaría generar una unión izquierda.

¿Es esto posible solo a nivel de consulta?


Pruebe el método Optional() .

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


Sólo esto funcionó para mí (NH 3.3):

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