Sto provando a recuperare con impazienza le raccolte utilizzando selects, ma tutto ciò che sono get è inner join. Cosa sta succedendo?Forza una selezione desiderosa in NHibernate
Session.CreateCriteria(typeof(Foo))
.SetFetchMode("Bars", FetchMode.Select)
.CreateAlias("Bars", "b")
.SetFetchMode("b.Bazes", FetchMode.Select)
.List();
Ho provato a cambiare FetchMode a Eager, ma che non funziona - ho ancora ottenere inner join invece che seleziona separati. Non sono sicuro di dove sia persino il join interno, perché nulla nei documenti parla di FetchMode che causa interazioni interne. È possibile ottenere selezioni desiderosi?
Aggiornamento OK Ho calcolato che la creazione di un alias provoca un join interno. Quindi posso usare .CreateAlias ("Bars", "b", JoinType.None), ma poi il recupero di b.Bazes ritorna al caricamento lazy. Urgh.
Ma il tipo di join predefinito è in genere left outer join no? I join interni non funzionano se la chiave esterna è nullable, o come nel mio caso, dove i bar potrebbero essere vuoti. Anche i documenti sembrano indicare che puoi fare una scelta entusiasta. – cbp