NHibernate:ProjectionList:我们可以为Orderby创建动态ProjectionList吗

NHibernate:ProjectionList:我们可以为Orderby创建动态ProjectionList吗,nhibernate,queryover,nhibernate-projections,Nhibernate,Queryover,Nhibernate Projections,我正在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 select列的投影列表与or

我正在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
select列的投影列表与orderby投影列表不同,我没有使用
.WithAlias()

如何创建没有别名或具有自定义名称的别名的投影列表


谢谢

我想,如果您通过这样的投影,您会遇到在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();
}
为了避免这种情况,我们可以这样做:

// 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();
}
//NHibernate将分别解决每个投影
for(var index=0;index