From 3ed6fbdeb18c5074fe48994ff69392d149527694 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Wed, 29 Jun 2022 15:17:39 +0800 Subject: [PATCH] Update SetColumns(string ,object) --- Src/Asp.Net/SqlServerTest/Demo/Demo2_Updateable.cs | 9 +++++++++ .../Abstract/UpdateProvider/UpdateableProvider.cs | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/Src/Asp.Net/SqlServerTest/Demo/Demo2_Updateable.cs b/Src/Asp.Net/SqlServerTest/Demo/Demo2_Updateable.cs index 9758199c6..f68559799 100644 --- a/Src/Asp.Net/SqlServerTest/Demo/Demo2_Updateable.cs +++ b/Src/Asp.Net/SqlServerTest/Demo/Demo2_Updateable.cs @@ -111,6 +111,15 @@ namespace OrmTest var dataTable = db.Queryable().Select("id,name,1 as price").Take(2).ToDataTable(); db.Fastest().BulkUpdate("Order", dataTable,new string[] {"id" },new string[] {"name" }); + db.Updateable() + .AS("[Order]") + .SetColumns("name", 1) + .Where("id=1").ExecuteCommand(); + db.Updateable() + .AS("[Order]") + .SetColumns("name", 1) + .SetColumns("price", 1) + .Where("id=1").ExecuteCommand(); Console.WriteLine("#### Updateable End ####"); } diff --git a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs index 7cbd819a4..a1d01657f 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs @@ -335,6 +335,15 @@ namespace SqlSugar UpdateBuilder.Parameters.Add(new SugarParameter(parameterName, fieldValue)); UpdateBuilder.SetValues.Add(new KeyValuePair(SqlBuilder.GetTranslationColumnName(fieldName), $"{SqlBuilder.GetTranslationColumnName(fieldName)}={parameterName}")); this.UpdateBuilder.DbColumnInfoList = this.UpdateBuilder.DbColumnInfoList.Where(it => (UpdateParameterIsNull == false && IsPrimaryKey(it)) || UpdateBuilder.SetValues.Any(v => SqlBuilder.GetNoTranslationColumnName(v.Key).Equals(it.DbColumnName, StringComparison.CurrentCultureIgnoreCase) || SqlBuilder.GetNoTranslationColumnName(v.Key).Equals(it.PropertyName, StringComparison.CurrentCultureIgnoreCase)) || it.IsPrimarykey == true).ToList(); + if (!this.UpdateBuilder.DbColumnInfoList.Any(it => it.DbColumnName.EqualCase(fieldName))) + { + this.UpdateBuilder.DbColumnInfoList.Add(new DbColumnInfo() + { + DbColumnName=fieldName, + Value=fieldValue, + PropertyName=fieldName + }); + } AppendSets(); return this; }