select a.Propiedad.Propietario from Alquiler a 2011/5/4 Jose Selesan <jsele...@gmail.com>
> Buenas, gente. Tengo un problema para hacer una consulta con NH 3. Tengo > una clase Alquiler, que tiene una property Propiedad. La clase Propiedad > tiene una property Propietario (que es de tipo Cliente). Lo que quiero hacer > es traerme todos los clientes cuyas propiedades están en alquiler, pero > evitando el select n+1 > > Si hago esto: > Session.Query<Alquiler>().Fetch(a => a.Propiedad).ThenFetch(x => > x.Propietario).Select(a => a.Propiedad.Propietario).ToList() > > Me da la siguiente excepción: > > Query specified join fetching, but the owner of the fetched association was > not present in the select list [FromElement{explicit,not a collection > join,fetch join,fetch non-lazy > properties,classAlias=_1,role=,tableName=Propiedades,tableAlias=propiedad1_,origin=Alquileres > alquiler0_,colums={alquiler0_.IDPropiedad > ,className=GestionerInmobiliarias.Dominio.Propiedad}}] > [.Select[GestionerInmobiliarias.Dominio.Alquiler,GestionerInmobiliarias.Dominio.Cliente](.ThenFetch[GestionerInmobiliarias.Dominio.Alquiler,GestionerInmobiliarias.Dominio.Propiedad,GestionerInmobiliarias.Dominio.Cliente](.Fetch[GestionerInmobiliarias.Dominio.Alquiler,GestionerInmobiliarias.Dominio.Propiedad](NHibernate.Linq.NhQueryable`1[GestionerInmobiliarias.Dominio.Alquiler], > Quote((a, ) => (a.Propiedad)), ), Quote((x, ) => (x.Propietario)), ), > Quote((a, ) => (a.Propiedad.Propietario)), )] > > También probé de usar QueryOver con JoinAlias, pero tampoco me funcionó. > > Obviamente, si hago esto: > > Session.Query<Alquiler>().Fetch(a => a.Propiedad).ThenFetch(x => > x.Propietario).ToList().Select(a => a.Propiedad.Propietario) > > Funciona correctamente y hace un solo viaje a la DB, pero estoy hidratando > un montón de objetos (la clase Alquiler es bastante compleja) para quedarme > con solamente los clientes. > > Gracias! > > -- > Para escribir al Grupo, hágalo a esta dirección: > NHibernate-Hispano@googlegroups.com > Para más, visite: http://groups.google.com/group/NHibernate-Hispano -- Fabio Maulo -- Para escribir al Grupo, hágalo a esta dirección: NHibernate-Hispano@googlegroups.com Para más, visite: http://groups.google.com/group/NHibernate-Hispano