From 4fbf4ae1b88e7548f8435274acd039a06c1e208b Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sun, 7 May 2023 22:24:28 +0800 Subject: [PATCH] =?UTF-8?q?Update=20=E8=BE=BE=E6=A2=A6=20=20=E4=BA=BA?= =?UTF-8?q?=E5=A4=A7=E9=87=91=E4=BB=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Realization/Dm/SqlBuilder/DmUpdateBuilder.cs | 1 + .../Kdbndp/SqlBuilder/KdbndpUpdateBuilder.cs | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/Src/Asp.Net/SqlSugar/Realization/Dm/SqlBuilder/DmUpdateBuilder.cs b/Src/Asp.Net/SqlSugar/Realization/Dm/SqlBuilder/DmUpdateBuilder.cs index 0ce19c760..df7ca08e0 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Dm/SqlBuilder/DmUpdateBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Dm/SqlBuilder/DmUpdateBuilder.cs @@ -7,6 +7,7 @@ namespace SqlSugar { public class DmUpdateBuilder : UpdateBuilder { + public override string ReSetValueBySqlExpListType { get; set; } = "dm"; protected override string GetJoinUpdate(string columnsString, ref string whereString) { var joinString = $" {Builder.GetTranslationColumnName(this.TableName)} {Builder.GetTranslationColumnName(this.ShortName)} "; diff --git a/Src/Asp.Net/SqlSugar/Realization/Kdbndp/SqlBuilder/KdbndpUpdateBuilder.cs b/Src/Asp.Net/SqlSugar/Realization/Kdbndp/SqlBuilder/KdbndpUpdateBuilder.cs index bc1c84d14..8cc1f9628 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Kdbndp/SqlBuilder/KdbndpUpdateBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Kdbndp/SqlBuilder/KdbndpUpdateBuilder.cs @@ -178,9 +178,25 @@ namespace SqlSugar batchUpdateSql.Replace("${0}", format); batchUpdateSql.Append(";"); } + batchUpdateSql = GetBatchUpdateSql(batchUpdateSql); return batchUpdateSql.ToString(); } + private StringBuilder GetBatchUpdateSql(StringBuilder batchUpdateSql) + { + if (ReSetValueBySqlExpListType == null && ReSetValueBySqlExpList != null) + { + var result = batchUpdateSql.ToString(); + foreach (var item in ReSetValueBySqlExpList) + { + var dbColumnName = item.Value.DbColumnName; + result = result.Replace($"{dbColumnName}=T.{dbColumnName}", $"{dbColumnName}={item.Value.Sql.Replace(dbColumnName, $"{Builder.GetTranslationColumnName(this.TableName)}.{dbColumnName}")}"); + batchUpdateSql = new StringBuilder(result); + } + } + + return batchUpdateSql; + } protected override string GetJoinUpdate(string columnsString, ref string whereString) { var formString = $" {Builder.GetTranslationColumnName(this.TableName)} AS {Builder.GetTranslationColumnName(this.ShortName)} ";