Update exp to sql

This commit is contained in:
sunkaixuan
2025-04-28 20:28:15 +08:00
parent 66c7752690
commit bf6d105b3c

View File

@@ -17,25 +17,42 @@ namespace SqlSugar
express.IfTrue,
express.IfFalse
};
if (express.Test is MemberExpression memberExpression)
if (ExpressionTool.GetParameters(express.Test).Count == 0)
{
var ps= ExpressionTool.GetParameters(express.Test);
if (ps?.Count == 0)
while (express != null)
{
var value= ExpressionTool.DynamicInvoke(express.Test);
if (value is bool boolValue)
var ps = ExpressionTool.GetParameters(express.Test);
if (ps?.Count == 0)
{
if (boolValue)
var value = ExpressionTool.DynamicInvoke(express.Test);
if (value is bool boolValue)
{
args[2] = express.IfTrue;
args[1] = express.IfTrue;
// 根据结果选择分支
var next = boolValue ? express.IfTrue : express.IfFalse;
args[1] = next;
args[2] = next;
// 如果选择的分支还是一个条件表达式,就继续展开
if (ExpressionTool.RemoveConvert(next) is ConditionalExpression childConditional)
{
args[0] = express.Test;
express = childConditional;
continue;
}
else
{
break; // 到底了,不是条件表达式,跳出循环
}
}
else
{
args[1] = express.IfFalse;
args[2] = express.IfFalse;
break; // 不是bool无法判断退出
}
}
else
{
break; // 有参数,不能动态执行,退出
}
}
}
if (IsBoolMember(express))