Re: [NHibernate-Hispano] Left Join Fluent Nhibernate C#

65 views
Skip to first unread message
Message has been deleted

Juan José Montes de Oca Arbós

unread,
Apr 1, 2016, 3:15:30 PM4/1/16
to nhibernat...@googlegroups.com
Hola Edeoleo, creo que te sobr el <Personal> del JoinQueryOver. Aparte, me parece que no entiendo algo de tus objetos, no me queda claro el queryover que haces sobre idPersonal (del objeto E), con ese nombre, entiendo que es un ID y ahí deberías pasar una lista (que es la lista relacionada de objetos que tiene el objeto Empleado.
Normalmente, las escribo asi:

var query = iSession.QueryOver<Empleado>()
                     .JoinQueryOver(e=>e.Personal) //Personal es una lista de Empleado
                     .Where(p=>p.NroPersonal == 5);

Espero te sirva.

Saludos Y ÉXITOS!!!!


--
Juan José Montes de Oca Arbós.

===========================
Web personal: http://juanjose.montesdeocaarbos.com.ar/blog/

El 1 de abril de 2016, 11:12, <ede...@tripletecnologia.com> escribió:
Hola 

estoy Intentando Hacer esta Consulta en FluentHibernate y no logro hacerlo por favor me ayudan

select *  from Empleados E left Join Personal P On d.IdPersonal = P.IdPersonal



 IQueryOver<Empleados, Personal> catQuery =
                                    iSession.QueryOver<Empleados>().
                                    JoinQueryOver<Personal>(E => E.IdPersonal).
                                    Where(P => P.IdPersonal == "IdPersonal");





--
--
Para escribir al Grupo, hágalo a esta dirección: NHibernat...@googlegroups.com
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
---
Has recibido este mensaje porque estás suscrito al grupo "NHibernate-Hispano" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a nhibernate-hisp...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Message has been deleted

Juan José Montes de Oca Arbós

unread,
Apr 1, 2016, 3:39:27 PM4/1/16
to nhibernat...@googlegroups.com
Bueno, la consulta va por el lado que escribí, pero eso sería sin el LEFT JOIN. Tendrías que agregarle .Left delante del JoinQueryOver y (creo que) tendrías lo que necesitás.

Saludos Y ÉXITOS!!!

--
Juan José Montes de Oca Arbós.

===========================
Web personal: http://juanjose.montesdeocaarbos.com.ar/blog/

El 1 de abril de 2016, 16:31, Emmanuel De Oleo <ede...@tripletecnologia.com> escribió:
hola Juan 

Intento hacer esa Consulta 

select *  from Empleados E left Join Personal P On E.IdPersonal = P.IdPersonal
Message has been deleted
Message has been deleted

Juan José Montes de Oca Arbós

unread,
Apr 1, 2016, 3:51:45 PM4/1/16
to nhibernat...@googlegroups.com
Che, esto  son "propiedades", no  "campos", porque estás trabajando con objetos.

Más allá de la jerga técnica, no tengo idea lo que esperas que te aparezca ahí... Lo que aparece son las propiedades del tipo de dato al que pertenece tu "IdKitTratamiento", ya que al hacer el JoinQueryOver, el sistema espera que definas las propiedades de ese objeto. Si lo que estás necesitando es especificar propiedades del objeto Empleados, tenés que agregar un Where antes del Join... 

Algo así:

var query = iSession.QueryOver<Empleados>()
                                                     .Where(emp => emp.ID == 5);
                                                     .Left.JoinQueryOver(ep => ep.IdKitTratamiento)
                                                     .Where(p => p. == 5);


Te dejo un link a una lista de artículos sobre QueryOver, para que puedas tener a mano y consultar tranquilo:


Saludos Y ÉXITOS!!!



--
Juan José Montes de Oca Arbós.

===========================
Web personal: http://juanjose.montesdeocaarbos.com.ar/blog/

El 1 de abril de 2016, 16:45, Emmanuel De Oleo <ede...@tripletecnologia.com> escribió:
BIEN 
var query = iSession.QueryOver<Empleados>().Left
                                                     .JoinQueryOver(ep => ep.IdKitTratamiento)
                                                     .Where(p => p. == 5);

no me sale los campos donde van a especificar el ID   
Reply all
Reply to author
Forward
0 new messages