Update db.PublicSetColumns

This commit is contained in:
sunkaixuan
2025-04-17 16:33:22 +08:00
parent b5b94d3935
commit b4ae395178
2 changed files with 8 additions and 2 deletions

View File

@@ -16,6 +16,7 @@ namespace SqlSugar
public DiffLogModel DiffModel { get; internal set; }
public List<string> UpdateColumns { get; internal set; }
public string[] WhereColumnList { get; internal set; }
public Dictionary<string, ReSetValueBySqlExpListModel> ReSetValueBySqlExpList { get; internal set; }
public UpdateableFilter<T> EnableQueryFilter()
{
@@ -47,7 +48,9 @@ namespace SqlSugar
}
this.Context.Utilities.PageEach(DataList, PageSize, pageItem =>
{
result += this.Context.Updateable(pageItem).AS(TableName).WhereColumns(WhereColumnList).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).UpdateColumns(UpdateColumns.ToArray()).ExecuteCommand();
var updateable = this.Context.Updateable(pageItem).AS(TableName);
updateable.UpdateBuilder.ReSetValueBySqlExpList = this.ReSetValueBySqlExpList;
result +=updateable.WhereColumns(WhereColumnList).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).UpdateColumns(UpdateColumns.ToArray()).ExecuteCommand();
});
if (isNoTran)
{
@@ -81,7 +84,9 @@ namespace SqlSugar
}
await this.Context.Utilities.PageEachAsync(DataList, PageSize, async pageItem =>
{
result += await this.Context.Updateable(pageItem).AS(TableName).WhereColumns(WhereColumnList).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).UpdateColumns(UpdateColumns.ToArray()).ExecuteCommandAsync();
var updateable = this.Context.Updateable(pageItem);
updateable.UpdateBuilder.ReSetValueBySqlExpList = this.ReSetValueBySqlExpList;
result += await updateable.AS(TableName).WhereColumns(WhereColumnList).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).UpdateColumns(UpdateColumns.ToArray()).ExecuteCommandAsync();
});
if (isNoTran)
{

View File

@@ -210,6 +210,7 @@ namespace SqlSugar
result.IsEnableDiffLogEvent = this.IsEnableDiffLogEvent;
result.WhereColumnList = this.WhereColumnList?.ToArray();
result.DiffModel = this.diffModel;
result.ReSetValueBySqlExpList = this.UpdateBuilder.ReSetValueBySqlExpList;
if (this.UpdateBuilder.DbColumnInfoList.Any())
result.UpdateColumns = this.UpdateBuilder.DbColumnInfoList.GroupBy(it => it.TableId).First().Select(it => it.DbColumnName).ToList();
if(this.UpdateBuilder?.UpdateColumns?.Any()==true)