我正在NHibernate中进行查询,其中用户可以为某些选定字段提供排序顺序。我需要在 QueryOver 中使用实体中的字段名称进行OrderBy()
,但是在使用投影列表时我会这样。
SELECT
this_.Number as y0_,
scc3_.Code as y1_,
FROM sometable
WHERE 1=1 ORDER BY this_.Number as y0_,
scc3_.Code as y1_ asc
选择列的投影列表与orderby投影列表不同,我没有使用.WithAlias()
sortProjectionList.Add(Projections.Property(() => stock.Number));
sortProjectionList.Add(Projections.Property(() => scc.Code));
如何创建没有带自定义名称的别名或别名的投影列表?
由于
答案 0 :(得分:1)
我希望您在ORDER BY
内部遇到生成关键字“AS”的问题,以防您传递这样的投影:
// NHibernate will leave few AS, except the last
query.OrderBy(sortProjectionList).Asc();
为避免这种情况,我们可以这样做:
// NHibernate will solve each projection separately
for (var index = 0; index < sortProjectionList.Length; index++)
{
query.OrderBy(sortProjectionList[index]).Asc();
}