From 4b81493f6dc0c5b335042feb8fe9b1ecd3a33b32 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Fri, 25 Apr 2025 15:39:30 +0800 Subject: [PATCH] Add SelectIF --- .../QueryableProvider/QueryableProvider06-10.cs | 14 ++++++++++++++ .../QueryableProvider/QueryableProvider11-12.cs | 16 +++++++++++++++- .../SqlSugar/Interface/IQueryable.cs | 8 ++++++-- 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider06-10.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider06-10.cs index 8021bfefb..2791c19c0 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider06-10.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider06-10.cs @@ -2792,6 +2792,13 @@ namespace SqlSugar } return _Select(expression); } + public virtual ISugarQueryable SelectIF(bool condition, Expression> trueSelectExpression, Expression> falseSelectExpression) + { + if (condition) + return Select(trueSelectExpression); + else + return Select(falseSelectExpression); + } public ISugarQueryable Select(Expression> expression) { if (IsAppendNavColumns()) @@ -3510,6 +3517,13 @@ namespace SqlSugar return this.Select(sql); } + public virtual ISugarQueryable SelectIF(bool condition, Expression> trueSelectExpression, Expression> falseSelectExpression) + { + if (condition) + return Select(trueSelectExpression); + else + return Select(falseSelectExpression); + } public ISugarQueryable Select(Expression> expression) { if (IsAppendNavColumns()) diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider11-12.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider11-12.cs index 08dfe1385..9053c00b6 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider11-12.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider11-12.cs @@ -328,6 +328,13 @@ namespace SqlSugar #endregion #region Select + public virtual ISugarQueryable SelectIF(bool condition, Expression> trueSelectExpression, Expression> falseSelectExpression) + { + if (condition) + return Select(trueSelectExpression); + else + return Select(falseSelectExpression); + } public ISugarQueryable Select(Expression> expression, bool isAutoFill) { var clone = this.Select(expression).Clone(); @@ -1025,7 +1032,7 @@ namespace SqlSugar public ISugarQueryable Select(Expression> expression) { return _Select(expression); - } + } public ISugarQueryable Select(Expression> expression) { return _Select(expression); @@ -1033,6 +1040,13 @@ namespace SqlSugar public ISugarQueryable Select(Expression> expression) { return _Select(expression); + } + public virtual ISugarQueryable SelectIF(bool condition, Expression> trueSelectExpression, Expression> falseSelectExpression) + { + if (condition) + return Select(trueSelectExpression); + else + return Select(falseSelectExpression); } #endregion diff --git a/Src/Asp.NetCore2/SqlSugar/Interface/IQueryable.cs b/Src/Asp.NetCore2/SqlSugar/Interface/IQueryable.cs index 9e8b2044b..80e7f5a23 100644 --- a/Src/Asp.NetCore2/SqlSugar/Interface/IQueryable.cs +++ b/Src/Asp.NetCore2/SqlSugar/Interface/IQueryable.cs @@ -1436,6 +1436,7 @@ namespace SqlSugar ISugarQueryable Select(Expression> expression); ISugarQueryable Select(Expression> expression); ISugarQueryable Select(Expression> expression, bool isAutoFill); + ISugarQueryable SelectIF(bool condition, Expression> trueSelectExpression, Expression> falseSelectExpression); #endregion #region OrderBy @@ -1579,6 +1580,7 @@ namespace SqlSugar ISugarQueryable Select(Expression> expression); ISugarQueryable Select(Expression> expression); ISugarQueryable Select(Expression> expression, bool isAutoFill); + ISugarQueryable SelectIF(bool condition, Expression> trueSelectExpression, Expression> falseSelectExpression); #endregion #region OrderBy @@ -1728,7 +1730,8 @@ namespace SqlSugar ISugarQueryable Select(Expression> expression); ISugarQueryable Select(Expression> expression); ISugarQueryable Select(Expression> expression); - ISugarQueryable Select(Expression> expression, bool isAutoFill); + ISugarQueryable Select(Expression> expression, bool isAutoFill); + ISugarQueryable SelectIF(bool condition, Expression> trueSelectExpression, Expression> falseSelectExpression); #endregion #region OrderBy @@ -1854,7 +1857,8 @@ namespace SqlSugar ISugarQueryable Select(Expression> expression); ISugarQueryable Select(Expression> expression); ISugarQueryable Select(Expression> expression); - ISugarQueryable Select(Expression> expression); + ISugarQueryable Select(Expression> expression); + ISugarQueryable SelectIF(bool condition, Expression> trueSelectExpression, Expression> falseSelectExpression); ISugarQueryable Select(Expression> expression); ISugarQueryable Select(Expression> expression); ISugarQueryable Select(Expression> expression);