Update exp to sql

This commit is contained in:
sunkaixuan 2023-03-24 15:31:25 +08:00
parent f66d8c7e71
commit d69a10c786
2 changed files with 21 additions and 1 deletions

View File

@ -53,7 +53,7 @@ namespace SqlSugar
if (this.Context.JoinIndex == 0)
result = SubTools.GetMethodValue(this.Context, exp.Arguments[0], ResolveExpressType.FieldSingle);
else
result = SubTools.GetMethodValue(this.Context, exp.Arguments[0], ResolveExpressType.FieldMultiple);
result = SubTools.GetMethodValueSubJoin(this.Context, exp.Arguments[0], ResolveExpressType.FieldMultiple);
SetShortName(exp, result);

View File

@ -69,5 +69,25 @@ namespace SqlSugar
context.Parameters.AddRange(newContext.Parameters);
return newContext.Result.GetResultString();
}
public static string GetMethodValueSubJoin(ExpressionContext context, Expression item, ResolveExpressType type)
{
var newContext = context.GetCopyContext();
newContext.MappingColumns = context.MappingColumns;
newContext.MappingTables = context.MappingTables;
newContext.InitMappingInfo = context.InitMappingInfo;
newContext.RefreshMapping = context.RefreshMapping;
newContext.IgnoreComumnList = context.IgnoreComumnList;
newContext.SqlFuncServices = context.SqlFuncServices;
if (type == ResolveExpressType.WhereMultiple||type==ResolveExpressType.FieldMultiple)
{
newContext.IsSingle = false;
}
newContext.Resolve(item, type);
context.Index = newContext.Index;
context.ParameterIndex = newContext.ParameterIndex;
if (newContext.Parameters.HasValue())
context.Parameters.AddRange(newContext.Parameters);
return newContext.Result.GetResultString();
}
}
}