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];