From 86a749ee9f525b1fe826e2a2e28b6b034f036458 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Wed, 6 Nov 2024 11:33:38 +0800 Subject: [PATCH] Synchronized code --- .../PostgreSQL/DbBind/PostgreSQLDbBind.cs | 8 ++++++++ .../SqlBuilder/PostgreSQLExpressionContext.cs | 16 ++++++++++++++-- .../SqlBuilder/PostgreSQLUpdateBuilder.cs | 4 ++++ 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/DbBind/PostgreSQLDbBind.cs b/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/DbBind/PostgreSQLDbBind.cs index ed63a2fc2..acf711f16 100644 --- a/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/DbBind/PostgreSQLDbBind.cs +++ b/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/DbBind/PostgreSQLDbBind.cs @@ -8,6 +8,14 @@ namespace SqlSugar { public override string GetDbTypeName(string csharpTypeName) { + if (csharpTypeName?.StartsWith("ora")==true&& this.Context.CurrentConnectionConfig?.MoreSettings?.DatabaseModel == DbType.Vastbase) + { + csharpTypeName= csharpTypeName.Replace("ora", ""); + } + else if (csharpTypeName?.StartsWith("mssql_") == true && this.Context.CurrentConnectionConfig?.MoreSettings?.DatabaseModel == DbType.Vastbase) + { + csharpTypeName = csharpTypeName.Replace("mssql_", ""); + } if (csharpTypeName == UtilConstants.ByteArrayType.Name) return "bytea"; if (csharpTypeName.ToLower() == "int32") diff --git a/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLExpressionContext.cs b/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLExpressionContext.cs index 34c998655..560a50a58 100644 --- a/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLExpressionContext.cs +++ b/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLExpressionContext.cs @@ -1,8 +1,8 @@ using System; -using System.Linq; +using System.Linq; namespace SqlSugar { - public class PostgreSQLExpressionContext : ExpressionContext, ILambdaExpressions + public partial class PostgreSQLExpressionContext : ExpressionContext, ILambdaExpressions { public SqlSugarProvider Context { get; set; } public PostgreSQLExpressionContext() @@ -244,6 +244,12 @@ namespace SqlSugar { var parameter = model.Args[0]; var parameter2 = model.Args[1]; + var parameter2Info = model.Parameters.FirstOrDefault(it => it.ParameterName.EqualCase(parameter2.MemberName + "")); + if (parameter2Info!=null&¶meter2.MemberName?.ToString()?.StartsWith("@MethodConst")==true) + { + parameter2Info.Value = parameter2.MemberValue+"%"; + return string.Format(" ({0} like {1} ) ", parameter.MemberName, parameter2.MemberName); + } return string.Format(" ({0} like concat({1},'%')) ", parameter.MemberName, parameter2.MemberName); } @@ -251,6 +257,12 @@ namespace SqlSugar { var parameter = model.Args[0]; var parameter2 = model.Args[1]; + var parameter2Info = model.Parameters.FirstOrDefault(it => it.ParameterName.EqualCase(parameter2.MemberName + "")); + if (parameter2Info != null && parameter2.MemberName?.ToString()?.StartsWith("@MethodConst") == true) + { + parameter2Info.Value = "%"+parameter2.MemberValue ; + return string.Format(" ({0} like {1} ) ", parameter.MemberName, parameter2.MemberName); + } return string.Format(" ({0} like concat('%',{1}))", parameter.MemberName,parameter2.MemberName); } diff --git a/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLUpdateBuilder.cs b/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLUpdateBuilder.cs index 85f16113b..6c76f7ee9 100644 --- a/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLUpdateBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLUpdateBuilder.cs @@ -172,6 +172,10 @@ namespace SqlSugar dbType = "varchar"; } } + if(it?.PropertyType?.FullName == "NetTopologySuite.Geometries.Geometry") + { + return string.Format(" {0} ", base.GetDbColumn(it, FormatValue(it.Value, it.DbColumnName, i + (pageIndex - 1) * 100000, it)), dbType); + } return string.Format("CAST({0} AS {1})", base.GetDbColumn(it,FormatValue(it.Value,it.DbColumnName,i+(pageIndex-1)*100000,it)), dbType); })) + ")");