diff --git a/OrmTest/ExpressionTest/Method.cs b/OrmTest/ExpressionTest/Method.cs index 62b5f724a..12bba423f 100644 --- a/OrmTest/ExpressionTest/Method.cs +++ b/OrmTest/ExpressionTest/Method.cs @@ -28,10 +28,22 @@ namespace OrmTest.ExpressionTest StringIsNullOrEmpty4(); ToUpper(); ToLower(); + Trim(); #endregion } base.End("Method Test"); } + private void Trim() + { + Expression> exp = it =>NBORM.Trim(" a")==it.Name; + SqlServerExpressionContext expContext = new SqlServerExpressionContext(exp, ResolveExpressType.WhereSingle); + expContext.Resolve(); + var value = expContext.Result.GetString(); + var pars = expContext.Parameters; + base.Check(value, pars, "( @Const0 = (UPPER(Id)) )", new List() { + new SugarParameter("@Const0","a") + }, "ToUpper"); + } private void ToUpper() { diff --git a/SqlSugar/ExpressionsToSql/Method/DefaultDbMethod.cs b/SqlSugar/ExpressionsToSql/Method/DefaultDbMethod.cs index f5b42f152..311d498a8 100644 --- a/SqlSugar/ExpressionsToSql/Method/DefaultDbMethod.cs +++ b/SqlSugar/ExpressionsToSql/Method/DefaultDbMethod.cs @@ -24,5 +24,11 @@ namespace SqlSugar var parameter = model.Args[0]; return string.Format(" (LOWER({0})) ", parameter.Value); } + + public object Trim(MethodCallExpressionModel model) + { + var parameter = model.Args[0]; + return string.Format(" (rtrim(ltrim({0}))) ", parameter.Value); + } } } diff --git a/SqlSugar/ExpressionsToSql/Method/IDbMethods.cs b/SqlSugar/ExpressionsToSql/Method/IDbMethods.cs index 7a1bb72cb..6cc4c5436 100644 --- a/SqlSugar/ExpressionsToSql/Method/IDbMethods.cs +++ b/SqlSugar/ExpressionsToSql/Method/IDbMethods.cs @@ -14,5 +14,6 @@ namespace SqlSugar string IsNullOrEmpty(MethodCallExpressionModel model); object ToLower(MethodCallExpressionModel model); object ToUpper(MethodCallExpressionModel model); + object Trim(MethodCallExpressionModel model); } } diff --git a/SqlSugar/ExpressionsToSql/Method/NBORM.cs b/SqlSugar/ExpressionsToSql/Method/NBORM.cs index efd782e1e..a561c828b 100644 --- a/SqlSugar/ExpressionsToSql/Method/NBORM.cs +++ b/SqlSugar/ExpressionsToSql/Method/NBORM.cs @@ -11,5 +11,6 @@ namespace SqlSugar public static bool IsNullOrEmpty(object thisValue) { throw new NotImplementedException(); } public static string ToLower(object thisValue) { throw new NotImplementedException(); } public static string ToUpper(object thisValue) { throw new NotImplementedException(); } + public static string Trim(object thisValue) { throw new NotImplementedException(); } } } diff --git a/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs b/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs index 4a94030ec..d2c5a79a1 100644 --- a/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs +++ b/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs @@ -71,6 +71,8 @@ namespace SqlSugar return this.Context.DbMehtods.ToLower(model); case "ToUpper": return this.Context.DbMehtods.ToUpper(model); + case "Trim": + return this.Context.DbMehtods.Trim(model); default: break; }