Pregunta

Estoy desarrollando una aplicación web usando NHibernate.¿Puede decirme cómo escribir una consulta NHibernate para la siguiente consulta SQL:

SELECT v1.Id
FROM VIEW v1
LEFT JOIN VIEW v2 ON v1.SourceView = v2.Id
ORDER BY v1.Position

Es básicamente una unión automática, pero no sé cómo escribir esto en Nhibernate.Digamos que los nombres de las propiedades son los mismos que los nombres de las columnas de la tabla.

¿Fue útil?

Solución

Podrías simplemente realizar la selección en la entidad original y hacer la asociación entre los dos objetos "lazy = false".Siempre que las entidades estén asignadas, se devolverán ambas y no obtendrá una excepción de carga diferida al intentar acceder al objeto.

Si no desea asignar "lazy=false", también puede recorrer los resultados y realizar algún tipo de operación (como preguntar si es nulo;if(v1.AssocatedObject == null){}) para garantizar que los datos se carguen mientras la sesión está abierta.

Actualizar:

Creo que en realidad hay uno mejor que ese, NHibernateUtil.Initialise() que puede inicializar una colección sin tener que recorrerla.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top