From 7cf3e6829ab8660bb737797884a77f4857d0904b Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Fri, 6 Sep 2024 10:11:27 +0800 Subject: [PATCH] =?UTF-8?q?Update=20=E4=BA=BA=E5=A4=A7=E9=87=91=E4=BB=93[M?= =?UTF-8?q?ySql,SqlServer]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Kdbndp/SqlBuilder/KdbndpUpdateBuilder.cs | 34 ++++++++++++++++--- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/Src/Asp.NetCore2/SqlSugar/Realization/Kdbndp/SqlBuilder/KdbndpUpdateBuilder.cs b/Src/Asp.NetCore2/SqlSugar/Realization/Kdbndp/SqlBuilder/KdbndpUpdateBuilder.cs index 49d4bf94e..bc335392c 100644 --- a/Src/Asp.NetCore2/SqlSugar/Realization/Kdbndp/SqlBuilder/KdbndpUpdateBuilder.cs +++ b/Src/Asp.NetCore2/SqlSugar/Realization/Kdbndp/SqlBuilder/KdbndpUpdateBuilder.cs @@ -132,7 +132,8 @@ namespace SqlSugar { var columnInfo = tableColumnList.FirstOrDefault(x => x.DbColumnName.Equals(it.DbColumnName, StringComparison.OrdinalIgnoreCase)); var dbType = columnInfo?.DataType; - if (dbType == null) { + if (dbType == null) + { var typeName = it.PropertyType.Name.ToLower(); if (typeName == "int32") typeName = "int"; @@ -140,7 +141,7 @@ namespace SqlSugar typeName = "long"; if (typeName == "int16") typeName = "short"; - if (typeName == "boolean") + if (typeName == "boolean") typeName = "bool"; var isAnyType = PostgreSQLDbBind.MappingTypesConst.Where(x => x.Value.ToString().ToLower() == typeName).Any(); @@ -148,11 +149,26 @@ namespace SqlSugar { dbType = PostgreSQLDbBind.MappingTypesConst.Where(x => x.Value.ToString().ToLower() == typeName).FirstOrDefault().Key; } - else { + else + { dbType = "varchar"; } } - return string.Format("CAST({0} AS {1})", base.GetDbColumn(it,FormatValue(it.Value)), dbType); + if (IsMySqlModel()) + { + if (dbType == "numeric") + { + dbType = "numeric(18,6)"; + } + } + if (IsSqlServerModel()) + { + if (dbType == "varchar") + { + dbType = "varchar(max)"; + } + } + return string.Format("CAST({0} AS {1})", base.GetDbColumn(it, FormatValue(it.Value)), dbType); })) + ")"); ++i; @@ -186,6 +202,16 @@ namespace SqlSugar return batchUpdateSql.ToString(); } + private bool IsSqlServerModel() + { + return this.Context?.CurrentConnectionConfig?.MoreSettings?.DatabaseModel == DbType.SqlServer; + } + + private bool IsMySqlModel() + { + return this.Context?.CurrentConnectionConfig?.MoreSettings?.DatabaseModel == DbType.MySql; + } + private StringBuilder GetBatchUpdateSql(StringBuilder batchUpdateSql) { if (ReSetValueBySqlExpListType == null && ReSetValueBySqlExpList != null)