Riferimento: nhibernate criteria for selecting from different tablesRecuperare le unità degli ultimi 5 ordini
ho cercato di recuperare per esempio ultimi 5 ordini ma ho ottenuto le ultime 5 unità!
Model.Order orderAlias = null;
Model.Unit unitsAlias = null;
Model.Employee employeeAlias = null;
IList<Model.Unit> itemList = null;
using (m_hibernateSession.BeginTransaction())
{
var query = m_hibernateSession.QueryOver<Model.Unit>(() => unitsAlias)
.JoinAlias(() => unitsAlias.OrderRef,() => orderAlias, JoinType.InnerJoin)
.JoinAlias(() => unitsAlias.EmployeeRef,() => employeeAlias, JoinType.InnerJoin);
// add additional filters if set
if (propertiesNames.Keys.Contains("Employee")) query.Where(Restrictions.On(() => employeeAlias.Name).IsLike("%" + (string)propertiesNames["Employee"] + "%"));
if (propertiesNames.Keys.Contains("Division")) query.Where(() => unitsAlias.Division == (string)propertiesNames["Division"]);
query.Where(() => orderAlias.PONumber != 0).OrderBy(() => orderAlias.PONumber).Desc.Take(5);
itemList = query.List<Model.Unit>();
}
Quali modifiche sono necessarie per ottenere le unità degli ultimi 5 ordini?
Thx
Perché ti sei unito con la tabella Employee? –
È per un altro filtro! – leon22
Un'idea dalla mia parte: prima recupera una lista con questi 5 ordini e sostituisci l'ordineAlias con SelectList (...) !? – leon22