From 3e7f31ced53e457f35b51373063c5218bd33b0eb Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Mon, 25 Apr 2022 13:25:07 +0800 Subject: [PATCH] Update split table --- .../SplitTableUpdateByObjectProvider.cs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/SplitTableUpdateByObjectProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/SplitTableUpdateByObjectProvider.cs index 26941ece6..ad49f38c4 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/SplitTableUpdateByObjectProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/SplitTableUpdateByObjectProvider.cs @@ -24,10 +24,12 @@ namespace SqlSugar foreach (var item in groupModels.GroupBy(it => it.GroupName)) { var addList = item.Select(it => it.Item).ToList(); - result += this.Context.Updateable(addList).AS(item.Key).ExecuteCommand(); + result += this.Context.Updateable(addList).IgnoreColumns(GetIgnoreColumns()).AS(item.Key).ExecuteCommand(); } return result; } + + public async Task ExecuteCommandAsync() { List groupModels; @@ -36,11 +38,22 @@ namespace SqlSugar foreach (var item in groupModels.GroupBy(it => it.GroupName)) { var addList = item.Select(it => it.Item).ToList(); - result +=await this.Context.Updateable(addList).AS(item.Key).ExecuteCommandAsync(); + result += await this.Context.Updateable(addList).IgnoreColumns(GetIgnoreColumns()).AS(item.Key).ExecuteCommandAsync(); } return result; } - + private string [] GetIgnoreColumns() + { + if (this.updateobj.UpdateBuilder.DbColumnInfoList.Any()) + { + var columns=this.updateobj.UpdateBuilder.DbColumnInfoList.Select(it => it.DbColumnName).Distinct().ToList(); + return this.Context.EntityMaintenance.GetEntityInfo().Columns.Where(x => !columns.Any(y => y.EqualCase(x.DbColumnName))).Select(it => it.DbColumnName).ToArray(); + } + else + { + return null; + } + } private void GroupDataList(T[] datas, out List groupModels, out int result) { var attribute = typeof(T).GetCustomAttribute() as SplitTableAttribute;