From 9ec7b1f2b88d35e373ede6376b2f8257f83800e5 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sat, 23 Aug 2025 19:40:33 +0800 Subject: [PATCH] Update mongodb --- .../MethodCallExpressionTractor.cs | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/Src/Asp.NetCore2/SqlSugar.MongoDbCore/ExpToSql/VisitorItems/MethodCallExpressionTractor.cs b/Src/Asp.NetCore2/SqlSugar.MongoDbCore/ExpToSql/VisitorItems/MethodCallExpressionTractor.cs index f055d2b82..c5dd1e770 100644 --- a/Src/Asp.NetCore2/SqlSugar.MongoDbCore/ExpToSql/VisitorItems/MethodCallExpressionTractor.cs +++ b/Src/Asp.NetCore2/SqlSugar.MongoDbCore/ExpToSql/VisitorItems/MethodCallExpressionTractor.cs @@ -314,7 +314,25 @@ namespace SqlSugar.MongoDb private static bool IsComplexAnyExpression(MethodCallExpression methodCallExpression) { - return methodCallExpression.Arguments.Count == 2 && ExpressionTool.GetParameters(methodCallExpression.Arguments[1]).Select(s => s.Name).Distinct().Count() == 2; + if (methodCallExpression.Arguments.Count != 2) + return false; + + var isTwoMemeber=ExpressionTool.GetParameters(methodCallExpression.Arguments[1]).Select(s => s.Name).Distinct().Count() == 2; + + if (!isTwoMemeber) + return false; + if (methodCallExpression.Arguments[1] is LambdaExpression l&&l.Body is BinaryExpression b) + { + if (MongoDbExpTools.RemoveConvert(b.Left) is MemberExpression == false||ExpressionTool.GetParameters(MongoDbExpTools.RemoveConvert(b.Left)).Count()!=1) + { + return false; + } + if (MongoDbExpTools.RemoveConvert(b.Right) is MemberExpression == false || ExpressionTool.GetParameters(MongoDbExpTools.RemoveConvert(b.Right)).Count() != 1) + { + return false; + } + } + return true; } private BsonValue ProcessAnyExpression(MethodCallExpression methodCallExpression)