public override SqlString ToSqlString(ICriteria criteria, int loc, ICriteriaQuery criteriaQuery, IDictionary <string, IFilter> enabledFilter) { if (ParameterValues != null && ParameterValues.Length > 0) { var sql = new SqlStringBuilder(); sql.Add(aggregate).Add("("); bool hasProperty = false; bool hasParameter = false; for (int i = 0; i < ParameterValues.Length; i++) { if (PropertyPosition == i) { if (i > 0) { sql.Add(", "); } sql.Add(criteriaQuery.GetColumn(criteria, propertyName)).Add(", "); hasProperty = true; } else if (i > 0) { sql.Add(", "); } sql.Add(LinqUtil.SqlEncode(ParameterValues[i])); hasParameter = true; } if (!hasProperty) { if (hasParameter) { sql.Add(", "); } sql.Add(criteriaQuery.GetColumn(criteria, propertyName)); } return(sql.Add(") as y").Add(loc.ToString()).Add("_").ToSqlString()); } // if ParameterValues were not specified, we defer to the base functionality return(base.ToSqlString(criteria, loc, criteriaQuery, enabledFilter)); }