diff --git a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateablePage.cs b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateablePage.cs index 7127c47b6..fe9a09e07 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateablePage.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateablePage.cs @@ -15,6 +15,7 @@ namespace SqlSugar public bool IsEnableDiffLogEvent { get; internal set; } public DiffLogModel DiffModel { get; internal set; } public List UpdateColumns { get; internal set; } + public string[] WhereColumnList { get; internal set; } public UpdateableFilter EnableQueryFilter() { @@ -46,7 +47,7 @@ namespace SqlSugar } this.Context.Utilities.PageEach(DataList, PageSize, pageItem => { - result += this.Context.Updateable(pageItem).AS(TableName).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).UpdateColumns(UpdateColumns.ToArray()).ExecuteCommand(); + result += this.Context.Updateable(pageItem).AS(TableName).WhereColumns(WhereColumnList).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).UpdateColumns(UpdateColumns.ToArray()).ExecuteCommand(); }); if (isNoTran) { @@ -80,7 +81,7 @@ namespace SqlSugar } await this.Context.Utilities.PageEachAsync(DataList, PageSize, async pageItem => { - result += await this.Context.Updateable(pageItem).AS(TableName).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).UpdateColumns(UpdateColumns.ToArray()).ExecuteCommandAsync(); + result += await this.Context.Updateable(pageItem).AS(TableName).WhereColumns(WhereColumnList).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).UpdateColumns(UpdateColumns.ToArray()).ExecuteCommandAsync(); }); if (isNoTran) { diff --git a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs index 0f9fc7293..9cff9d035 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs @@ -190,6 +190,7 @@ namespace SqlSugar result.DataList = this.UpdateObjs; result.TableName = this.UpdateBuilder.TableName; result.IsEnableDiffLogEvent = this.IsEnableDiffLogEvent; + result.WhereColumnList = this.WhereColumnList?.ToArray(); result.DiffModel = this.diffModel; if (this.UpdateBuilder.DbColumnInfoList.Any()) result.UpdateColumns = this.UpdateBuilder.DbColumnInfoList.GroupBy(it => it.TableId).First().Select(it => it.DbColumnName).ToList(); @@ -530,6 +531,8 @@ namespace SqlSugar public IUpdateable WhereColumns(string[] columnNames) { + if (columnNames == null) return this; + ThrowUpdateByExpression(); if (this.WhereColumnList == null) this.WhereColumnList = new List(); foreach (var columnName in columnNames)