Update exp to sql

This commit is contained in:
sunkaixuan 2023-10-03 11:44:45 +08:00
parent 75ef29f73b
commit c0e3810c56
2 changed files with 28 additions and 1 deletions

View File

@ -281,6 +281,15 @@ namespace SqlSugar
expression.NodeType != ExpressionType.Or &&
expression.NodeType != ExpressionType.OrElse;
}
public static bool IsEqualOrLtOrGt(Expression expression)
{
return expression.NodeType== ExpressionType.Equal||
expression.NodeType == ExpressionType.GreaterThan||
expression.NodeType == ExpressionType.LessThan||
expression.NodeType == ExpressionType.LessThanOrEqual ||
expression.NodeType == ExpressionType.GreaterThanOrEqual
;
}
public static object GetMemberValue(MemberInfo member, Expression expression)
{
var rootExpression = expression as MemberExpression;

View File

@ -244,7 +244,25 @@ namespace SqlSugar
{
this.Context.Parameters.AddRange(newContext.Parameters);
}
if (ExpressionTool.IsEqualOrLtOrGt(item))
{
var sql = newContext.Result.GetString();
var pTrue = AppendParameter(true);
var pFalse = AppendParameter(false);
sql =this.Context.DbMehtods.IIF(new MethodCallExpressionModel() {
Args=new List<MethodCallExpressionArgs>()
{
new MethodCallExpressionArgs(){ MemberName=sql,MemberValue=sql,IsMember=true } ,
new MethodCallExpressionArgs(){ MemberName=pTrue,MemberValue=pTrue,IsMember=true },
new MethodCallExpressionArgs(){ MemberName=pFalse,MemberValue=pFalse,IsMember=true }
}
});
this.Context.Result.Append(this.Context.GetAsString(asName, sql));
}
else
{
this.Context.Result.Append(this.Context.GetAsString(asName, newContext.Result.GetString()));
}
this.Context.Result.CurrentParameter = null;
if (this.Context.SingleTableNameSubqueryShortName.IsNullOrEmpty() && newContext.SingleTableNameSubqueryShortName.HasValue())
{