From 7dcc338899efed6404895d0b249dc2a9fe966ab3 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Wed, 23 Apr 2025 18:24:45 +0800 Subject: [PATCH] Add LeftJoinIF(BOOL,EXP, TABLENAME) --- .../QueryableProvider02-05.cs | 124 ++++++++++++++++++ .../SqlSugar/Interface/IQueryable.cs | 14 ++ 2 files changed, 138 insertions(+) diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider02-05.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider02-05.cs index da2b13369..891360fcc 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider02-05.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider02-05.cs @@ -209,6 +209,49 @@ namespace SqlSugar result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName; return result; } + + + public ISugarQueryable LeftJoinIF(bool isJoin,Expression> joinExpression, string tableName) + { + var result = LeftJoin(joinExpression); + result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName; + if (isJoin == false) + { + result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last()); + } + return result; + } + public ISugarQueryable FullJoinIF(bool isJoin,Expression> joinExpression, string tableName) + { + var result = FullJoin(joinExpression); + result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName; + if (isJoin == false) + { + result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last()); + } + return result; + } + public ISugarQueryable InnerJoinIF(bool isJoin,Expression> joinExpression, string tableName) + { + var result = InnerJoin(joinExpression); + result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName; + if (isJoin == false) + { + result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last()); + } + return result; + } + public ISugarQueryable RightJoinIF(bool isJoin,Expression> joinExpression, string tableName) + { + var result = RightJoin(joinExpression); + result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName; + if (isJoin == false) + { + result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last()); + } + return result; + } + public ISugarQueryable InnerJoin(Expression> joinExpression) { this.Context.InitMappingInfo(); @@ -904,6 +947,47 @@ namespace SqlSugar } + public ISugarQueryable LeftJoinIF(bool isJoin, Expression> joinExpression, string tableName) + { + var result = LeftJoin(joinExpression); + result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName; + if (isJoin == false) + { + result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last()); + } + return result; + } + public ISugarQueryable FullJoinIF(bool isJoin, Expression> joinExpression, string tableName) + { + var result = FullJoin(joinExpression); + result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName; + if (isJoin == false) + { + result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last()); + } + return result; + } + public ISugarQueryable InnerJoinIF(bool isJoin, Expression> joinExpression, string tableName) + { + var result = InnerJoin(joinExpression); + result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName; + if (isJoin == false) + { + result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last()); + } + return result; + } + public ISugarQueryable RightJoinIF(bool isJoin, Expression> joinExpression, string tableName) + { + var result = RightJoin(joinExpression); + result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName; + if (isJoin == false) + { + result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last()); + } + return result; + } + #region Group public new ISugarQueryable PartitionBy(Expression> expression) @@ -1674,6 +1758,46 @@ namespace SqlSugar return result; } + public ISugarQueryable LeftJoinIF(bool isJoin, Expression> joinExpression, string tableName) + { + var result = LeftJoin(joinExpression); + result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName; + if (isJoin == false) + { + result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last()); + } + return result; + } + public ISugarQueryable FullJoinIF(bool isJoin, Expression> joinExpression, string tableName) + { + var result = FullJoin(joinExpression); + result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName; + if (isJoin == false) + { + result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last()); + } + return result; + } + public ISugarQueryable InnerJoinIF(bool isJoin, Expression> joinExpression, string tableName) + { + var result = InnerJoin(joinExpression); + result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName; + if (isJoin == false) + { + result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last()); + } + return result; + } + public ISugarQueryable RightJoinIF(bool isJoin, Expression> joinExpression, string tableName) + { + var result = RightJoin(joinExpression); + result.QueryBuilder.JoinQueryInfos.Last().TableName = tableName; + if (isJoin == false) + { + result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last()); + } + return result; + } #region Where public new ISugarQueryable Where(string expShortName, FormattableString expressionString) diff --git a/Src/Asp.NetCore2/SqlSugar/Interface/IQueryable.cs b/Src/Asp.NetCore2/SqlSugar/Interface/IQueryable.cs index 7d45895f9..ec07a9800 100644 --- a/Src/Asp.NetCore2/SqlSugar/Interface/IQueryable.cs +++ b/Src/Asp.NetCore2/SqlSugar/Interface/IQueryable.cs @@ -351,6 +351,11 @@ namespace SqlSugar ISugarQueryable InnerJoin(Expression> joinExpression); ISugarQueryable RightJoin(Expression> joinExpression); + ISugarQueryable LeftJoinIF(bool isJoin, Expression> joinExpression, string tableName); + ISugarQueryable FullJoinIF(bool isJoin, Expression> joinExpression, string tableName); + ISugarQueryable InnerJoinIF(bool isJoin, Expression> joinExpression, string tableName); + ISugarQueryable RightJoinIF(bool isJoin, Expression> joinExpression, string tableName); + ISugarQueryable LeftJoin(Expression> joinExpression,string tableName); ISugarQueryable FullJoin(Expression> joinExpression,string tableName); ISugarQueryable InnerJoin(Expression> joinExpression,string tableName); @@ -485,6 +490,11 @@ namespace SqlSugar ISugarQueryable FullJoin(Expression> joinExpression,string tableName); ISugarQueryable InnerJoin(Expression> joinExpression,string tableName); ISugarQueryable RightJoin(Expression> joinExpression,string tableName); + + ISugarQueryable LeftJoinIF(bool isJoin, Expression> joinExpression, string tableName); + ISugarQueryable FullJoinIF(bool isJoin, Expression> joinExpression, string tableName); + ISugarQueryable InnerJoinIF(bool isJoin, Expression> joinExpression, string tableName); + ISugarQueryable RightJoinIF(bool isJoin, Expression> joinExpression, string tableName); #region Where new ISugarQueryable Where(string expShortName, FormattableString expressionString); new ISugarQueryable Where(Expression> expression); @@ -630,6 +640,10 @@ namespace SqlSugar ISugarQueryable FullJoin(Expression> joinExpression, string tableName); ISugarQueryable InnerJoin(Expression> joinExpression, string tableName); ISugarQueryable RightJoin(Expression> joinExpression, string tableName); + ISugarQueryable LeftJoinIF(bool isJoin, Expression> joinExpression, string tableName); + ISugarQueryable FullJoinIF(bool isJoin, Expression> joinExpression, string tableName); + ISugarQueryable InnerJoinIF(bool isJoin, Expression> joinExpression, string tableName); + ISugarQueryable RightJoinIF(bool isJoin, Expression> joinExpression, string tableName); #region Where new ISugarQueryable Where(string expShortName, FormattableString expressionString);