From 5a51a96b945e8f8d39f98824c56bf554c9098338 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Thu, 1 Jun 2023 10:25:52 +0800 Subject: [PATCH] Update exp to sql --- .../ExpressionsToSql/Subquery/SubResolve.cs | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/Subquery/SubResolve.cs b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/Subquery/SubResolve.cs index 39d8c24c4..8842f9a6c 100644 --- a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/Subquery/SubResolve.cs +++ b/Src/Asp.NetCore2/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; + } } } }