From 0b9924c9ac02f39012502aaf3ff2ca720f304004 Mon Sep 17 00:00:00 2001 From: skx <610262374@qq.com> Date: Mon, 25 May 2020 20:09:53 +0800 Subject: [PATCH] Update core --- .../SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs | 6 ++++++ .../SqlSugar/ExpressionsToSql/DbMethods/IDbMethods.cs | 1 + .../SqlSugar/ExpressionsToSql/DbMethods/SqlFunc.cs | 1 + .../ResolveItems/MethodCallExpressionResolve.cs | 2 ++ .../PostgreSQL/SqlBuilder/PostgreSQLExpressionContext.cs | 4 ++-- 5 files changed, 12 insertions(+), 2 deletions(-) diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs index 56f7d8e7c..1313333a0 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs @@ -401,5 +401,11 @@ namespace SqlSugar { return string.Format("CHARINDEX ({0},{1})", model.Args[0].MemberName, model.Args[1].MemberName); } + + public string ToVarchar(MethodCallExpressionModel model) + { + var parameter = model.Args[0]; + return string.Format(" CAST({0} AS VARCHAR(MAX))", parameter.MemberName); + } } } diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/DbMethods/IDbMethods.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/DbMethods/IDbMethods.cs index 7d99494de..0e46f1416 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/DbMethods/IDbMethods.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/DbMethods/IDbMethods.cs @@ -34,6 +34,7 @@ namespace SqlSugar string ToInt32(MethodCallExpressionModel model); string ToInt64(MethodCallExpressionModel model); string ToString(MethodCallExpressionModel model); + string ToVarchar(MethodCallExpressionModel model); string ToGuid(MethodCallExpressionModel model); string ToDouble(MethodCallExpressionModel model); string ToBool(MethodCallExpressionModel model); diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/DbMethods/SqlFunc.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/DbMethods/SqlFunc.cs index 650767050..4ff08933a 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/DbMethods/SqlFunc.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/DbMethods/SqlFunc.cs @@ -101,6 +101,7 @@ namespace SqlSugar /// public static TimeSpan ToTime(object value) { throw new NotSupportedException("Can only be used in expressions"); } public static string ToString(object value) { return value.ObjToString(); } + public static string ToVarchar(object value) { return value.ObjToString(); } public static decimal ToDecimal(object value) { return value.ObjToDecimal(); } public static Guid ToGuid(object value) { return Guid.Parse(value.ObjToString()); } public static double ToDouble(object value) { return value.ObjToMoney(); } diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs index 907a58a25..67804b9f9 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs @@ -611,6 +611,8 @@ namespace SqlSugar } Check.Exception(model.Args.Count > 1, "ToString (Format) is not supported, Use ToString().If time formatting can be used it.Date.Year+\"-\"+it.Data.Month+\"-\"+it.Date.Day "); return this.Context.DbMehtods.ToString(model); + case "ToVarchar": + return this.Context.DbMehtods.ToVarchar(model); case "ToDecimal": return this.Context.DbMehtods.ToDecimal(model); case "ToGuid": diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLExpressionContext.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLExpressionContext.cs index 0d619f8c6..82623421b 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLExpressionContext.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLExpressionContext.cs @@ -178,14 +178,14 @@ namespace SqlSugar var parameter = model.Args[0]; var parameter2 = model.Args[1]; var parameter3 = model.Args[2]; - return string.Format(" (DATE_ADD({1} , INTERVAL {2} {0})) ", parameter3.MemberValue, parameter.MemberName, parameter2.MemberName); + return string.Format(" ({1} + ({2}||'{0}')::INTERVAL) ", parameter3.MemberValue, parameter.MemberName, parameter2.MemberName); } public override string DateAddDay(MethodCallExpressionModel model) { var parameter = model.Args[0]; var parameter2 = model.Args[1]; - return string.Format(" (DATE_ADD({1} INTERVAL {0} day)) ", parameter.MemberName, parameter2.MemberName); + return string.Format(" ({0} + ({1}||'day')::INTERVAL) ", parameter.MemberName, parameter2.MemberName); } public override string ToInt32(MethodCallExpressionModel model)