From 048d8f8cd1c83c2102156d66fd24c79808bad3d5 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Thu, 1 Jun 2023 14:08:08 +0800 Subject: [PATCH] Synchronization code --- .../ExpressionsToSql/Subquery/SubResolve.cs | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/SubResolve.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/SubResolve.cs index 39d8c24c4..8842f9a6c 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/SubResolve.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/SubResolve.cs @@ -46,23 +46,26 @@ namespace SqlSugar if (expArgs != null && expArgs.Any()) { var meExp = expArgs[0] as LambdaExpression; - var selfParameterName = meExp.Parameters.First().Name; - if ((meExp.Body is BinaryExpression)) + if (meExp != null) { - context.SingleTableNameSubqueryShortName = (((meExp.Body as BinaryExpression).Left as MemberExpression)?.Expression as ParameterExpression)?.Name; - } - if (ExpressionTool.GetMethodName(context.Expression).IsContainsIn("ToList")&& meExp.Parameters.Any(it=>it.Name==selfParameterName)) - { - if (meExp.Body is BinaryExpression) + var selfParameterName = meExp.Parameters.First().Name; + if ((meExp.Body is BinaryExpression)) { - context.SingleTableNameSubqueryShortName = (((meExp.Body as BinaryExpression).Right as MemberExpression)?.Expression as ParameterExpression)?.Name; + context.SingleTableNameSubqueryShortName = (((meExp.Body as BinaryExpression).Left as MemberExpression)?.Expression as ParameterExpression)?.Name; } - } - if (context.SingleTableNameSubqueryShortName == selfParameterName) - { - if (meExp.Body is BinaryExpression) + if (ExpressionTool.GetMethodName(context.Expression).IsContainsIn("ToList") && meExp.Parameters.Any(it => it.Name == selfParameterName)) { - context.SingleTableNameSubqueryShortName = (((meExp.Body as BinaryExpression).Right as MemberExpression)?.Expression as ParameterExpression)?.Name; + if (meExp.Body is BinaryExpression) + { + context.SingleTableNameSubqueryShortName = (((meExp.Body as BinaryExpression).Right as MemberExpression)?.Expression as ParameterExpression)?.Name; + } + } + if (context.SingleTableNameSubqueryShortName == selfParameterName) + { + if (meExp.Body is BinaryExpression) + { + context.SingleTableNameSubqueryShortName = (((meExp.Body as BinaryExpression).Right as MemberExpression)?.Expression as ParameterExpression)?.Name; + } } } }