Skip to content

Commit ae1b053

Browse files
committed
- 增加 HavingIf 方法;#1095
1 parent 41432cd commit ae1b053

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

FreeSql/Interface/Curd/ISelect/ISelectGrouping.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,18 @@ public interface ISelectGrouping<TKey, TValue>
1919
#endif
2020

2121
/// <summary>
22-
/// 按聚合条件过滤,Where(a => a.Count() > 10)
22+
/// 按聚合条件过滤,Having(a => a.Count() > 10)
2323
/// </summary>
2424
/// <param name="exp">lambda表达式</param>
2525
/// <returns></returns>
2626
ISelectGrouping<TKey, TValue> Having(Expression<Func<ISelectGroupingAggregate<TKey, TValue>, bool>> exp);
27+
/// <summary>
28+
/// 按聚合条件过滤,HavingIf(true, a => a.Count() > 10)
29+
/// </summary>
30+
/// <param name="condition">true 时生效</param>
31+
/// <param name="exp">lambda表达式</param>
32+
/// <returns></returns>
33+
ISelectGrouping<TKey, TValue> HavingIf(bool condition, Expression<Func<ISelectGroupingAggregate<TKey, TValue>, bool>> exp);
2734

2835
/// <summary>
2936
/// 按列排序,OrderBy(a => a.Time)

FreeSql/Internal/CommonProvider/SelectProvider/SelectGroupingProvider.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,7 @@ public ISelectGrouping<TKey, TValue> Count(out long count)
226226
return this;
227227
}
228228

229+
public ISelectGrouping<TKey, TValue> HavingIf(bool condition, Expression<Func<ISelectGroupingAggregate<TKey, TValue>, bool>> exp) => condition ? Having(exp) : this;
229230
public ISelectGrouping<TKey, TValue> Having(Expression<Func<ISelectGroupingAggregate<TKey, TValue>, bool>> exp)
230231
{
231232
_lambdaParameter = exp?.Parameters[0];

0 commit comments

Comments
 (0)