mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-11-24 08:33:16 +08:00
Update exp to sql
This commit is contained in:
@@ -359,10 +359,16 @@ namespace SqlSugar
|
||||
}
|
||||
public static List<ParameterExpression> GetParameters(Expression expr)
|
||||
{
|
||||
var ps = new ParameterExpressionVisitor();
|
||||
var ps = new ParameterExpressionVisitor();
|
||||
ps.Visit(expr);
|
||||
return ps.Parameters;
|
||||
}
|
||||
public static bool NoParameterOrSqlfunc(Expression expr)
|
||||
{
|
||||
var ps = new ParameterExpressionVisitor();
|
||||
ps.Visit(expr);
|
||||
return ps.Parameters.Count==0&&ps.IsSqlFunc==false;
|
||||
}
|
||||
public static bool IsComparisonOperatorBool(BinaryExpression binaryExp)
|
||||
{
|
||||
return binaryExp.NodeType.IsIn(ExpressionType.Equal,
|
||||
|
||||
@@ -10,6 +10,7 @@ namespace SqlSugar
|
||||
{
|
||||
internal class ParameterExpressionVisitor : ExpressionVisitor
|
||||
{
|
||||
public bool IsSqlFunc { get; set; }
|
||||
public List<ParameterExpression> Parameters { get; } = new List<ParameterExpression>();
|
||||
|
||||
protected override Expression VisitParameter(ParameterExpression node)
|
||||
@@ -17,6 +18,14 @@ namespace SqlSugar
|
||||
Parameters.Add(node);
|
||||
return base.VisitParameter(node);
|
||||
}
|
||||
protected override Expression VisitMethodCall(MethodCallExpression node)
|
||||
{
|
||||
if (node.Method?.DeclaringType==typeof(SqlFunc))
|
||||
{
|
||||
IsSqlFunc = true;
|
||||
}
|
||||
return base.VisitMethodCall(node);
|
||||
}
|
||||
}
|
||||
internal class MethodCallExpressionVisitor : ExpressionVisitor
|
||||
{
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace SqlSugar
|
||||
express.IfFalse
|
||||
};
|
||||
SetSingleTableNameSubqueryShortName(express);
|
||||
if (ExpressionTool.GetParameters(express.Test).Count == 0)
|
||||
if (ExpressionTool.NoParameterOrSqlfunc(express.Test))
|
||||
{
|
||||
while (express != null)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user