Estoy tratando de ejecutar esta consulta LINQ a continuación con NHibernate 3.NHibernate 3 - combinación izquierda re-solución LINQ
var items = from c in session.Query<tbla>()
join t in session.Query<tblb>() on c.Id equals t.SomeId into t1 // use left join on trades.
from t2 in t1.DefaultIfEmpty()
select new {item = c, desc = t2.Description};
Ésta es la manera de llevar a cabo una izquierda unirse en LINQ, que yo sepa. Sin embargo, me está dando un mensaje de excepción no compatible. ¿Cómo puedo lograr una combinación izquierda básica sin recurrir a HQL? Esto parece un poco tonto que un ORM tan frecuente como nHibernate no pueda soportar algo tan peatonal como un join de izquierda.
[editar]
he puesto la verdadera respuesta a mi propia pregunta a continuación.
Estoy perdido. ¿Dónde están los equivalentes para "en c.Id es igual a t.SomeId into t1" y "new {item = c, desc = t2.Description}" en el ejemplo? ¿Podría extender el ejemplo y/o los comentarios? – mayu
La respuesta aceptada es incorrecta. ¿Por qué no envías tu propia respuesta? Yo votaría por eso. – mayu
Buena llamada He movido mi edición a una respuesta. La magia de unión ocurre en la cláusula 'SelectList' de esa expresión. Espero que eso ayude. La segunda consulta no es una lógica de coincidencia exacta para la primera consulta, por lo que no hay comparación de manzana a manzana allí. – James