che sto cercando di fare funzionare questa query LINQ seguito con NHibernate 3.NHibernate 3 - LEFT JOIN soluzione ri-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};
Questo è il magazzino modo per eseguire una sinistra unirsi LINQ a mia conoscenza. Tuttavia mi sta dando un messaggio di eccezione non supportato. Come posso ottenere un join di sinistra di base senza ricorrere a HQL? Questo sembra un po 'sciocco che un ORM prevalente come ibernato non possa supportare qualcosa di pedone come un join di sinistra.
[modifica]
ho messo la vera risposta alla mia domanda qui sotto.
Mi sono perso. Dove sono gli equivalenti per "on c.Id equals t.SomeId in t1" e "new {item = c, desc = t2.Description}" nell'esempio? Potresti estendere l'esempio e/oi commenti? – mayu
La risposta accettata è errata. Perché non invii la tua risposta? Io voterei per questo. – mayu
Buona chiamata ho spostato la mia modifica su una risposta. La magia del join avviene nella clausola 'SelectList' di quell'espressione. Speriamo che questo aiuti. La seconda query non è una logica di corrispondenza esatta per la prima query, quindi non esiste un confronto tra le mele e le mele. – James