Update exp to sql

This commit is contained in:
sunkaixuan 2022-11-17 23:17:22 +08:00
parent 9e35ad6842
commit 2c43911cb9
2 changed files with 28 additions and 0 deletions

View File

@ -546,5 +546,18 @@ namespace SqlSugar
}
return result;
}
internal static bool IsSubQuery(Expression it)
{
if (it is MethodCallExpression)
{
var method = (MethodCallExpression)it;
if (method.Object != null && method.Object.Type.Name.StartsWith("Subquery"))
{
return true;
}
}
return false;
}
}
}

View File

@ -489,6 +489,21 @@ namespace SqlSugar
{
item = (item as UnaryExpression).Operand;
}
if (this.Context.IsSingle&& args.Any(it=>ExpressionTool.IsSubQuery(it))&&base.BaseParameter?.BaseParameter?.BaseParameter?.CurrentExpression!=null)
{
var exp = base.BaseParameter?.BaseParameter?.BaseParameter?.CurrentExpression;
if (exp is LambdaExpression)
{
var lamExp = (exp as LambdaExpression);
if (lamExp.Parameters != null && lamExp.Parameters.Count == 1)
{
if (this.Context.CurrentShortName == null)
{
this.Context.SingleTableNameSubqueryShortName = lamExp.Parameters.First().Name;
}
}
}
}
var isBinaryExpression = item is BinaryExpression || item is MethodCallExpression;
var isConst = item is ConstantExpression;
var isIIF = name == "IIF";