Skip to content

Commit f8f447a

Browse files
committed
Fix Order By for alias
1 parent 755d130 commit f8f447a

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/NHibernate/Criterion/Order.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@ public Order(string propertyName, bool ascending)
3636
/// </summary>
3737
public virtual SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery)
3838
{
39-
SqlString[] columns = CriterionUtil.GetColumnNames(propertyName, projection, criteriaQuery, criteria);
40-
39+
SqlString[] columns = GetColumnsOrAliases(criteria, criteriaQuery);
4140
bool[] toLowerColumns = ignoreCase ? FindStringColumns(criteria, criteriaQuery) : null;
4241

4342
var factory = criteriaQuery.Factory;
@@ -71,6 +70,14 @@ public virtual SqlString ToSqlString(ICriteria criteria, ICriteriaQuery criteria
7170
return fragment.ToSqlString();
7271
}
7372

73+
private SqlString[] GetColumnsOrAliases(ICriteria criteria, ICriteriaQuery criteriaQuery)
74+
{
75+
var propName = propertyName ?? (projection as IPropertyProjection)?.PropertyName;
76+
return propName != null
77+
? Array.ConvertAll(criteriaQuery.GetColumnAliasesUsingProjection(criteria, propName), x => new SqlString(x))
78+
: CriterionUtil.GetColumnNamesUsingProjection(projection, criteriaQuery, criteria);
79+
}
80+
7481
private bool[] FindStringColumns(ICriteria criteria, ICriteriaQuery criteriaQuery)
7582
{
7683
var type = projection == null

0 commit comments

Comments
 (0)