Update nav query

This commit is contained in:
sunkaixuan
2022-09-19 20:46:50 +08:00
parent c4dffaf9ac
commit 3348006bc8

View File

@@ -519,6 +519,7 @@ namespace SqlSugar
SqlInfo result = new SqlInfo(); SqlInfo result = new SqlInfo();
result.Parameters = new List<SugarParameter>(); result.Parameters = new List<SugarParameter>();
var isList = false; var isList = false;
int parameterIndex = 0;
foreach (var item in _ListCallFunc) foreach (var item in _ListCallFunc)
{ {
var method = item as MethodCallExpression; var method = item as MethodCallExpression;
@@ -539,10 +540,12 @@ namespace SqlSugar
} }
else else
{ {
queryable.QueryBuilder.LambdaExpressions.ParameterIndex = parameterIndex;
CheckHasRootShortName(method.Arguments[0], method.Arguments[1]); CheckHasRootShortName(method.Arguments[0], method.Arguments[1]);
var exp = method.Arguments[1]; var exp = method.Arguments[1];
where.Add(" " + queryable.QueryBuilder.GetExpressionValue(exp, ResolveExpressType.WhereSingle).GetString()); where.Add(" " + queryable.QueryBuilder.GetExpressionValue(exp, ResolveExpressType.WhereSingle).GetString());
SetTableShortName(result, queryable); SetTableShortName(result, queryable);
parameterIndex=queryable.QueryBuilder.LambdaExpressions.ParameterIndex ;
} }
} }
else if (method.Method.Name == "WhereIF") else if (method.Method.Name == "WhereIF")
@@ -550,10 +553,12 @@ namespace SqlSugar
var isOk = LambdaExpression.Lambda(method.Arguments[1]).Compile().DynamicInvoke(); var isOk = LambdaExpression.Lambda(method.Arguments[1]).Compile().DynamicInvoke();
if (isOk.ObjToBool()) if (isOk.ObjToBool())
{ {
queryable.QueryBuilder.LambdaExpressions.ParameterIndex = parameterIndex;
var exp = method.Arguments[2]; var exp = method.Arguments[2];
CheckHasRootShortName(method.Arguments[1], method.Arguments[2]); CheckHasRootShortName(method.Arguments[1], method.Arguments[2]);
where.Add(" " + queryable.QueryBuilder.GetExpressionValue(exp, ResolveExpressType.WhereSingle).GetString()); where.Add(" " + queryable.QueryBuilder.GetExpressionValue(exp, ResolveExpressType.WhereSingle).GetString());
SetTableShortName(result, queryable); SetTableShortName(result, queryable);
parameterIndex = queryable.QueryBuilder.LambdaExpressions.ParameterIndex;
} }
} }
else if (method.Method.Name == "OrderBy") else if (method.Method.Name == "OrderBy")