From d19b3ffb4a537bba835ecbae28fb1762f7d94bbb Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sat, 22 Apr 2023 02:54:01 +0800 Subject: [PATCH] Update exp to sql --- .../Subquery/Items/SubAndIF.cs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/Subquery/Items/SubAndIF.cs b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/Subquery/Items/SubAndIF.cs index 15e2e2473..f22898def 100644 --- a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/Subquery/Items/SubAndIF.cs +++ b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/Subquery/Items/SubAndIF.cs @@ -53,9 +53,24 @@ namespace SqlSugar return ""; } var argExp = exp.Arguments[1]; - var result = "AND " + SubTools.GetMethodValue(Context, argExp, ResolveExpressType.WhereMultiple); ; + var copyContext = this.Context; + if (this.Context.JoinIndex > 0) + { + copyContext = this.Context.GetCopyContextWithMapping(); + copyContext.IsSingle = false; + } + var result = "AND " + SubTools.GetMethodValue(copyContext, argExp, ResolveExpressType.WhereMultiple); ; + if (this.Context.JoinIndex > 0) + { + this.Context.Parameters.AddRange(copyContext.Parameters); + this.Context.Index = copyContext.Index; + this.Context.ParameterIndex = copyContext.ParameterIndex; + } var selfParameterName = Context.GetTranslationColumnName((argExp as LambdaExpression).Parameters.First().Name) + UtilConstants.Dot; - result = result.Replace(selfParameterName, SubTools.GetSubReplace(this.Context)); + if (this.Context.JoinIndex==0) + { + result = result.Replace(selfParameterName, SubTools.GetSubReplace(this.Context)); + } return result; } }