Skip to content
This repository was archived by the owner on Dec 24, 2022. It is now read-only.

Commit 9f277de

Browse files
authored
Add multiple GROUP BY overloads
1 parent 3048d87 commit 9f277de

File tree

1 file changed

+21
-7
lines changed

1 file changed

+21
-7
lines changed

src/ServiceStack.OrmLite/Expressions/SqlExpression.cs

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,7 @@ public virtual SqlExpression<T> GroupBy(string groupBy)
456456
return this;
457457
}
458458

459-
public virtual SqlExpression<T> GroupBy<Table>(Expression<Func<Table, object>> keySelector)
459+
private SqlExpression<T> InternalGroupBy(Expression keySelector)
460460
{
461461
sep = string.Empty;
462462
useFieldName = true;
@@ -467,15 +467,29 @@ public virtual SqlExpression<T> GroupBy<Table>(Expression<Func<Table, object>> k
467467
return GroupBy(groupByKey.ToString());
468468
}
469469

470-
public virtual SqlExpression<T> GroupBy(Expression<Func<T, object>> keySelector)
470+
public virtual SqlExpression<T> GroupBy<Table>(Expression<Func<Table, object>> keySelector)
471471
{
472-
sep = string.Empty;
473-
useFieldName = true;
472+
return InternalGroupBy(keySelector);
473+
}
474474

475-
var groupByKey = Visit(keySelector);
476-
StripAliases(groupByKey as SelectList); // No "AS ColumnAlias" in GROUP BY, just the column names/expressions
475+
public virtual SqlExpression<T> GroupBy<Table1, Table2>(Expression<Func<Table1, Table2, object>> keySelector)
476+
{
477+
return InternalGroupBy(keySelector);
478+
}
477479

478-
return GroupBy(groupByKey.ToString());
480+
public virtual SqlExpression<T> GroupBy<Table1, Table2, Table3>(Expression<Func<Table1, Table2, Table3, object>> keySelector)
481+
{
482+
return InternalGroupBy(keySelector);
483+
}
484+
485+
public virtual SqlExpression<T> GroupBy<Table1, Table2, Table3, Table4>(Expression<Func<Table1, Table2, Table3, Table4, object>> keySelector)
486+
{
487+
return InternalGroupBy(keySelector);
488+
}
489+
490+
public virtual SqlExpression<T> GroupBy(Expression<Func<T, object>> keySelector)
491+
{
492+
return InternalGroupBy(keySelector);
479493
}
480494

481495
public virtual SqlExpression<T> Having()

0 commit comments

Comments
 (0)