mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-19 10:08:19 +08:00
Exp to sql (Ternary expression precompilation)
This commit is contained in:
@@ -17,6 +17,27 @@ namespace SqlSugar
|
|||||||
express.IfTrue,
|
express.IfTrue,
|
||||||
express.IfFalse
|
express.IfFalse
|
||||||
};
|
};
|
||||||
|
if (express.Test is MemberExpression memberExpression)
|
||||||
|
{
|
||||||
|
var ps= ExpressionTool.GetParameters(express.Test);
|
||||||
|
if (ps?.Count == 0)
|
||||||
|
{
|
||||||
|
var value= ExpressionTool.DynamicInvoke(express.Test);
|
||||||
|
if (value is bool boolValue)
|
||||||
|
{
|
||||||
|
if (boolValue)
|
||||||
|
{
|
||||||
|
args[2] = express.IfTrue;
|
||||||
|
args[1] = express.IfTrue;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
args[1] = express.IfFalse;
|
||||||
|
args[2] = express.IfFalse;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
if (IsBoolMember(express))
|
if (IsBoolMember(express))
|
||||||
{
|
{
|
||||||
Expression trueValue = Expression.Constant(true);
|
Expression trueValue = Expression.Constant(true);
|
||||||
|
Reference in New Issue
Block a user