diff --git a/Src/Asp.Net/PgSqlTest/Demo/Demo2_Updateable.cs b/Src/Asp.Net/PgSqlTest/Demo/Demo2_Updateable.cs index 84f2eb43b..26f1c5e9f 100644 --- a/Src/Asp.Net/PgSqlTest/Demo/Demo2_Updateable.cs +++ b/Src/Asp.Net/PgSqlTest/Demo/Demo2_Updateable.cs @@ -54,7 +54,15 @@ namespace OrmTest var result5 = db.Updateable(updateObj).WhereColumns(it => new { it.Id }).ExecuteCommand();//update single by id var result6 = db.Updateable(updateObjs).WhereColumns(it => new { it.Id }).ExecuteCommand();//update List by id + var result67 = + db.Updateable(updateObjs) + .PublicSetColumns(it => it.Price, it => it.Price + 1) + .ExecuteCommand(); + var result68 = + db.Updateable(updateObjs.First()) + .PublicSetColumns(it => it.Price, it => it.Price + 1) + .ExecuteCommand(); /*** 2.by expression ***/ diff --git a/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLUpdateBuilder.cs b/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLUpdateBuilder.cs index bb5383ce2..accfd9a68 100644 --- a/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLUpdateBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLUpdateBuilder.cs @@ -198,8 +198,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)} ";