Update SetColumns(string ,object)

This commit is contained in:
sunkaixuan 2022-06-29 15:17:39 +08:00
parent eb22820036
commit 3ed6fbdeb1
2 changed files with 18 additions and 0 deletions

View File

@ -111,6 +111,15 @@ namespace OrmTest
var dataTable = db.Queryable<Order>().Select("id,name,1 as price").Take(2).ToDataTable();
db.Fastest<Order>().BulkUpdate("Order", dataTable,new string[] {"id" },new string[] {"name" });
db.Updateable<DbTableInfo>()
.AS("[Order]")
.SetColumns("name", 1)
.Where("id=1").ExecuteCommand();
db.Updateable<DbTableInfo>()
.AS("[Order]")
.SetColumns("name", 1)
.SetColumns("price", 1)
.Where("id=1").ExecuteCommand();
Console.WriteLine("#### Updateable End ####");
}

View File

@ -335,6 +335,15 @@ namespace SqlSugar
UpdateBuilder.Parameters.Add(new SugarParameter(parameterName, fieldValue));
UpdateBuilder.SetValues.Add(new KeyValuePair<string, string>(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;
}