From 8c6224786200c7ace6dd93cee5adc6092de93d2b Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sun, 20 Aug 2023 14:41:50 +0800 Subject: [PATCH] Synchronization code --- .../QueryableProvider/QueryableProvider.cs | 10 ++++- .../QueryableProvider02-05.cs | 38 +++++++++++++++++++ Src/Asp.Net/SqlSugar/Interface/IQueryable.cs | 5 +++ 3 files changed, 52 insertions(+), 1 deletion(-) diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index ec26dd9d9..9f0d960ba 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -90,7 +90,15 @@ namespace SqlSugar this.AddJoinInfo(GetTableName(navEntityInfo, navEntityInfo.DbTableName), shortName, onWhere, JoinType.Right); return this; } - + public ISugarQueryable LeftJoinIF(bool isJoin, ISugarQueryable joinQueryable, Expression> joinExpression) + { + var result = LeftJoin(joinQueryable, joinExpression); + if (isJoin == false) + { + result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last()); + } + return result; + } public ISugarQueryable LeftJoin(ISugarQueryable joinQueryable, Expression> joinExpression) { diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider02-05.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider02-05.cs index 3e6b95209..e0753c829 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider02-05.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider02-05.cs @@ -70,6 +70,15 @@ namespace SqlSugar result.QueryBuilder.LambdaExpressions.ParameterIndex = this.QueryBuilder.LambdaExpressions.ParameterIndex; return result; } + public ISugarQueryable LeftJoinIF(bool isJoin, ISugarQueryable joinQueryable, Expression> joinExpression) + { + var result = LeftJoin(joinQueryable, joinExpression); + if (isJoin == false) + { + result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last()); + } + return result; + } public ISugarQueryable InnerJoin(ISugarQueryable joinQueryable, Expression> joinExpression) { this.Context.InitMappingInfo(); @@ -702,6 +711,15 @@ namespace SqlSugar result.QueryBuilder.LambdaExpressions.ParameterIndex = this.QueryBuilder.LambdaExpressions.ParameterIndex; return result; } + public ISugarQueryable LeftJoinIF(bool isJoin, ISugarQueryable joinQueryable, Expression> joinExpression) + { + var result = LeftJoin(joinQueryable, joinExpression); + if (isJoin == false) + { + result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last()); + } + return result; + } public ISugarQueryable InnerJoin(ISugarQueryable joinQueryable, Expression> joinExpression) { this.Context.InitMappingInfo(); @@ -1440,6 +1458,15 @@ namespace SqlSugar result.QueryBuilder.LambdaExpressions.ParameterIndex = this.QueryBuilder.LambdaExpressions.ParameterIndex; return result; } + public ISugarQueryable LeftJoinIF(bool isJoin, ISugarQueryable joinQueryable, Expression> joinExpression) + { + var result = LeftJoin(joinQueryable, joinExpression); + if (isJoin == false) + { + result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last()); + } + return result; + } public ISugarQueryable InnerJoin(ISugarQueryable joinQueryable, Expression> joinExpression) { this.Context.InitMappingInfo(); @@ -2201,6 +2228,17 @@ namespace SqlSugar result.QueryBuilder.LambdaExpressions.ParameterIndex = this.QueryBuilder.LambdaExpressions.ParameterIndex; return result; } + + public ISugarQueryable LeftJoinIF(bool isJoin, ISugarQueryable joinQueryable, Expression> joinExpression) + { + var result = LeftJoin(joinQueryable, joinExpression); + if (isJoin == false) + { + result.QueryBuilder.JoinQueryInfos.Remove(result.QueryBuilder.JoinQueryInfos.Last()); + } + return result; + } + public ISugarQueryable InnerJoin(ISugarQueryable joinQueryable, Expression> joinExpression) { this.Context.InitMappingInfo(); diff --git a/Src/Asp.Net/SqlSugar/Interface/IQueryable.cs b/Src/Asp.Net/SqlSugar/Interface/IQueryable.cs index e05bd0821..de159cf5b 100644 --- a/Src/Asp.Net/SqlSugar/Interface/IQueryable.cs +++ b/Src/Asp.Net/SqlSugar/Interface/IQueryable.cs @@ -30,6 +30,7 @@ namespace SqlSugar ISugarQueryable IncludeRightJoin(Expression> rightObjectExp); ISugarQueryable IncludeFullJoin(Expression> fullObjectExp); ISugarQueryable LeftJoin(ISugarQueryable joinQueryable, Expression> joinExpression); + ISugarQueryable LeftJoinIF(bool isJoin,ISugarQueryable joinQueryable, Expression> joinExpression); ISugarQueryable InnerJoin(ISugarQueryable joinQueryable, Expression> joinExpression); ISugarQueryable RightJoin(ISugarQueryable joinQueryable, Expression> joinExpression); ISugarQueryable FullJoin(ISugarQueryable joinQueryable, Expression> joinExpression); @@ -290,6 +291,7 @@ namespace SqlSugar ISugarQueryable LeftJoinIF(bool isLeftJoin, Expression> joinExpression); ISugarQueryable InnerJoinIF(bool isJoin, Expression> joinExpression); ISugarQueryable LeftJoin(ISugarQueryable joinQueryable, Expression> joinExpression); + ISugarQueryable LeftJoinIF(bool isJoin,ISugarQueryable joinQueryable, Expression> joinExpression); ISugarQueryable InnerJoin(ISugarQueryable joinQueryable, Expression> joinExpression); ISugarQueryable RightJoin(ISugarQueryable joinQueryable, Expression> joinExpression); ISugarQueryable FullJoin(ISugarQueryable joinQueryable, Expression> joinExpression); @@ -413,6 +415,7 @@ namespace SqlSugar ISugarQueryable LeftJoinIF(bool isLeftJoin, Expression> joinExpression); ISugarQueryable InnerJoinIF(bool isJoin, Expression> joinExpression); ISugarQueryable LeftJoin(ISugarQueryable joinQueryable, Expression> joinExpression); + ISugarQueryable LeftJoinIF(bool isJoin,ISugarQueryable joinQueryable, Expression> joinExpression); ISugarQueryable InnerJoin(ISugarQueryable joinQueryable, Expression> joinExpression); ISugarQueryable RightJoin(ISugarQueryable joinQueryable, Expression> joinExpression); ISugarQueryable FullJoin(ISugarQueryable joinQueryable, Expression> joinExpression); @@ -551,6 +554,7 @@ namespace SqlSugar ISugarQueryable LeftJoinIF(bool isLeftJoin, Expression> joinExpression); ISugarQueryable InnerJoinIF(bool isJoin, Expression> joinExpression); ISugarQueryable LeftJoin(ISugarQueryable joinQueryable, Expression> joinExpression); + ISugarQueryable LeftJoinIF(bool isJoin,ISugarQueryable joinQueryable, Expression> joinExpression); ISugarQueryable InnerJoin(ISugarQueryable joinQueryable, Expression> joinExpression); ISugarQueryable RightJoin(ISugarQueryable joinQueryable, Expression> joinExpression); ISugarQueryable LeftJoin(Expression> joinExpression); @@ -695,6 +699,7 @@ namespace SqlSugar ISugarQueryable LeftJoinIF(bool isLeftJoin, Expression> joinExpression); ISugarQueryable InnerJoinIF(bool isJoin, Expression> joinExpression); ISugarQueryable LeftJoin(ISugarQueryable joinQueryable, Expression> joinExpression); + ISugarQueryable LeftJoinIF(bool isJoin,ISugarQueryable joinQueryable, Expression> joinExpression); ISugarQueryable InnerJoin(ISugarQueryable joinQueryable, Expression> joinExpression); ISugarQueryable RightJoin(ISugarQueryable joinQueryable, Expression> joinExpression); ISugarQueryable LeftJoin(Expression> joinExpression);