NHibernate:ProjectionList:我们可以为Orderby创建动态ProjectionList吗
我正在NHibernate中处理一个查询,用户可以为一些选定字段提供排序顺序。我需要在QueryOver中使用实体中字段名的名称执行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
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