diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Common/ExpressionTool.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Common/ExpressionTool.cs index b5cd38ef9..9ca8cded1 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Common/ExpressionTool.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Common/ExpressionTool.cs @@ -8,6 +8,12 @@ namespace SqlSugar { public class ExpressionTool { + public static bool IsVariable(Expression expr) + { + var ps = new ParameterExpressionVisitor(); + ps.Visit(expr); + return ps.Parameters.Count==0; + } public static bool IsComparisonOperatorBool(BinaryExpression binaryExp) { return binaryExp.NodeType.IsIn(ExpressionType.Equal, diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs index c43fa45d1..f120adf88 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs @@ -160,6 +160,10 @@ namespace SqlSugar { var method = express.Method; string name = method.Name; + if (name == "Any" &&ExpressionTool.IsVariable(express.Arguments[0])) + { + name = "ListAny"; + } var args = express.Arguments.Cast().ToList(); MethodCallExpressionModel model = new MethodCallExpressionModel(); model.Args = new List(); diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve_Helper.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve_Helper.cs index 20d2f3547..704c2e8d9 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve_Helper.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve_Helper.cs @@ -858,6 +858,10 @@ namespace SqlSugar { return true; } + if (expression.Method.Name == "Any"&& ExpressionTool.IsVariable(expression.Arguments[0]) ) + { + return true; + } if (expression.Method.Name == "Format" && expression.Method.DeclaringType == UtilConstants.StringType) { return true;