#18319: Fixing the Where clause generations in Projections

Work Item: 18319

--HG--
branch : 1.x
This commit is contained in:
Sebastien Ros
2012-01-04 17:37:56 -08:00
parent bbcd00ae8b
commit af87c07ebf
2 changed files with 12 additions and 19 deletions
@@ -193,27 +193,22 @@ namespace Orchard.ContentManagement {
sb.Append(join.Item2.Type).Append(" ").Append(join.Item1.Name + "." + join.Item2.TableName).Append(" as ").Append(join.Item2.Name).AppendLine();
}
#region Where
// generating where clause
if (_wheres.Any()) {
sb.Append("where ");
bool first = true;
foreach (var where in _wheres) {
if (!first) {
sb.Append("and ");
}
else {
sb.Append("where ");
first = false;
var expressions = new List<string>();
foreach (var where in _wheres) {
var expressionFactory = new DefaultHqlExpressionFactory();
where.Item2(expressionFactory);
expressions.Add(expressionFactory.Criterion.ToHql(where.Item1));
}
var expressionFactory = new DefaultHqlExpressionFactory();
where.Item2(expressionFactory);
sb.Append(expressionFactory.Criterion.ToHql(where.Item1)).AppendLine();
sb.Append("(").Append(String.Join(") AND (", expressions.ToArray())).Append(")").AppendLine();
}
#endregion
#region Order by
// generating order by clause
bool firstSort = true;
foreach (var sort in _sortings) {
if (!firstSort) {
@@ -238,8 +233,6 @@ namespace Orchard.ContentManagement {
}
}
#endregion
return sb.ToString();
}