Update exp to sql

This commit is contained in:
sunkaixuan 2025-06-06 18:42:57 +08:00
parent 98ed5e8a75
commit d522b8d805
2 changed files with 39 additions and 2 deletions

View File

@ -17,6 +17,7 @@ namespace SqlSugar
express.IfTrue,
express.IfFalse
};
SetSingleTableNameSubqueryShortName(express);
if (ExpressionTool.GetParameters(express.Test).Count == 0)
{
while (express != null)
@ -89,6 +90,42 @@ namespace SqlSugar
}
}
private void SetSingleTableNameSubqueryShortName(ConditionalExpression express)
{
if (this.Context.IsSingle && express.Test is MethodCallExpression callExpression)
{
var list = callExpression.Arguments.ToList();
if (express.IfTrue is MethodCallExpression callExpressionLeft)
{
list.AddRange(callExpressionLeft.Arguments);
}
if (express.IfFalse is MethodCallExpression callExpressionRight)
{
list.AddRange(callExpressionRight.Arguments);
}
foreach (var item in list)
{
if (item is MethodCallExpression itemObj)
{
if (itemObj?.Object?.Type?.Name?.StartsWith("Subqueryable`") == true)
{
if (this.Context.SingleTableNameSubqueryShortName == null)
{
if (this.Context.SugarContext?.QueryBuilder?.SelectValue is LambdaExpression lambda)
{
if (lambda?.Parameters?.Count == 1)
{
this.Context.SingleTableNameSubqueryShortName = lambda.Parameters.FirstOrDefault()?.Name;
continue;
}
}
}
}
}
}
}
}
private static bool IsBoolMember(ConditionalExpression express)
{
return express.Test is MemberExpression && (express.Test as MemberExpression).Expression is ParameterExpression;

View File

@ -2,7 +2,7 @@
<package >
<metadata>
<id>SqlSugarCore</id>
<version>5.1.4.196-preview07</version>
<version>5.1.4.196-preview09</version>
<authors>sunkaixuan</authors>
<owners>果糖大数据科技</owners>
<licenseUrl>http://www.apache.org/licenses/LICENSE-2.0.html</licenseUrl>