From ae1b053189aa7b61a344e0362f53c4e0c4169548 Mon Sep 17 00:00:00 2001
From: 2881099 <2881099@qq.com>
Date: Fri, 6 May 2022 12:40:06 +0800
Subject: [PATCH] =?UTF-8?q?-=20=E5=A2=9E=E5=8A=A0=20HavingIf=20=E6=96=B9?=
=?UTF-8?q?=E6=B3=95=EF=BC=9B#1095?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
FreeSql/Interface/Curd/ISelect/ISelectGrouping.cs | 9 ++++++++-
.../SelectProvider/SelectGroupingProvider.cs | 1 +
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/FreeSql/Interface/Curd/ISelect/ISelectGrouping.cs b/FreeSql/Interface/Curd/ISelect/ISelectGrouping.cs
index c787cc61..3f081a79 100644
--- a/FreeSql/Interface/Curd/ISelect/ISelectGrouping.cs
+++ b/FreeSql/Interface/Curd/ISelect/ISelectGrouping.cs
@@ -19,11 +19,18 @@ namespace FreeSql
#endif
///
- /// 按聚合条件过滤,Where(a => a.Count() > 10)
+ /// 按聚合条件过滤,Having(a => a.Count() > 10)
///
/// lambda表达式
///
ISelectGrouping Having(Expression, bool>> exp);
+ ///
+ /// 按聚合条件过滤,HavingIf(true, a => a.Count() > 10)
+ ///
+ /// true 时生效
+ /// lambda表达式
+ ///
+ ISelectGrouping HavingIf(bool condition, Expression, bool>> exp);
///
/// 按列排序,OrderBy(a => a.Time)
diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/SelectGroupingProvider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/SelectGroupingProvider.cs
index 2f0e0703..383c1ed2 100644
--- a/FreeSql/Internal/CommonProvider/SelectProvider/SelectGroupingProvider.cs
+++ b/FreeSql/Internal/CommonProvider/SelectProvider/SelectGroupingProvider.cs
@@ -226,6 +226,7 @@ namespace FreeSql.Internal.CommonProvider
return this;
}
+ public ISelectGrouping HavingIf(bool condition, Expression, bool>> exp) => condition ? Having(exp) : this;
public ISelectGrouping Having(Expression, bool>> exp)
{
_lambdaParameter = exp?.Parameters[0];