From 9be7691d3da544d65f869f6baaa5aec2c126a552 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sat, 9 Jul 2022 03:16:12 +0800 Subject: [PATCH] Add Sqlfunc.Stuff --- .../ExpressionsToSql/DbMethods/DefaultDbMethod.cs | 8 ++++++++ .../SqlSugar/ExpressionsToSql/DbMethods/IDbMethods.cs | 1 + .../SqlSugar/ExpressionsToSql/DbMethods/SqlFunc.cs | 6 ++++++ .../ResolveItems/MethodCallExpressionResolve.cs | 2 ++ 4 files changed, 17 insertions(+) diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs index 124b6a790..5b0c0c577 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs @@ -544,5 +544,13 @@ namespace SqlSugar { return model.Args[0].MemberName + " DESC "; } + public virtual string Stuff(MethodCallExpressionModel model) + { + var parameter1 = model.Args[0]; + var parameter2 = model.Args[1]; + var parameter3 = model.Args[2]; + var parameter4 = model.Args[3]; + return $" STUFF ({parameter1.MemberName}, {parameter2.MemberName}, {parameter3.MemberName}, {parameter4.MemberName}) "; + } } } diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/IDbMethods.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/IDbMethods.cs index 746af359c..d81e8af07 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/IDbMethods.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/IDbMethods.cs @@ -85,5 +85,6 @@ namespace SqlSugar string LessThanOrEqual(MethodCallExpressionModel model); string Asc(MethodCallExpressionModel model); string Desc(MethodCallExpressionModel model); + string Stuff(MethodCallExpressionModel model); } } diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/SqlFunc.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/SqlFunc.cs index 23f80679f..c39192d82 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/SqlFunc.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/SqlFunc.cs @@ -25,6 +25,12 @@ namespace SqlSugar { throw new NotSupportedException("Can only be used in expressions"); } + + public static string Stuff(string sourceString, int start, int length, string AddString) + { + throw new NotSupportedException("Can only be used in expressions"); + } + public static bool GreaterThanOrEqual(object thisValue, object gtValue) { throw new NotSupportedException("Can only be used in expressions"); diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs index 9c93febc4..3ffa6fb7f 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs @@ -998,6 +998,8 @@ namespace SqlSugar return this.Context.DbMehtods.Asc(model); case "Desc": return this.Context.DbMehtods.Desc(model); + case "Stuff": + return this.Context.DbMehtods.Stuff(model); default: break; }