From 09c5f839df50e686b5a229d7d8d6ab0683b181b3 Mon Sep 17 00:00:00 2001 From: li_yuelun Date: Thu, 18 Sep 2025 16:08:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20aop=20list=20=E5=A4=9A?= =?UTF-8?q?=E4=B8=AA=20=E5=8F=AF=E5=8F=AA=E8=B5=B0=E4=B8=80=E6=AC=A1aop?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=85=A8=E9=83=A8=E7=9A=84list?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Abstract/DeleteProvider/DeleteableProvider.cs | 6 ++++++ .../Abstract/FastestProvider/FastestProvider.cs | 3 +++ .../Abstract/InsertableProvider/InsertableHelper.cs | 12 ++++++++++++ .../Abstract/UpdateProvider/UpdateableHelper.cs | 12 ++++++++++++ Src/Asp.NetCore2/SqlSugar/Enum/DataFilterType.cs | 5 ++++- 5 files changed, 37 insertions(+), 1 deletion(-) diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/DeleteProvider/DeleteableProvider.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/DeleteProvider/DeleteableProvider.cs index 0ae05b4e8..53cafd715 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/DeleteProvider/DeleteableProvider.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/DeleteProvider/DeleteableProvider.cs @@ -807,6 +807,12 @@ namespace SqlSugar dataEvent(deleteObj, model); } } + dataEvent(deleteObjs, new DataFilterModel() + { + OperationType = DataFilterType.BatchDeleteByObject, + EntityValue = deleteObjs, + EntityColumnInfo = this.EntityInfo.Columns.FirstOrDefault() + }); } } diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/FastestProvider/FastestProvider.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/FastestProvider/FastestProvider.cs index ad729716f..91299aaba 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/FastestProvider/FastestProvider.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/FastestProvider/FastestProvider.cs @@ -7,6 +7,7 @@ using System.Linq; using System.Threading; using System.Reflection; using System.Runtime.CompilerServices; +using Dm; namespace SqlSugar { public partial class FastestProvider:IFastest where T:class,new() @@ -550,6 +551,8 @@ namespace SqlSugar { dataEvent(columnInfo.PropertyInfo.GetValue(item, null), new DataFilterModel() { OperationType = type, EntityValue = item, EntityColumnInfo = columnInfo }); } + dataEvent(null, new DataFilterModel() { OperationType = type== DataFilterType.InsertByObject? DataFilterType.BatchInsertByObject:DataFilterType.BatchUpdateByObject, EntityValue = item, EntityColumnInfo = entity.Columns.FirstOrDefault() }); + } } #endregion diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/InsertableProvider/InsertableHelper.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/InsertableProvider/InsertableHelper.cs index 9aee1c191..f62407ca2 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/InsertableProvider/InsertableHelper.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/InsertableProvider/InsertableHelper.cs @@ -184,6 +184,7 @@ namespace SqlSugar InsertBuilder.EntityInfo = this.EntityInfo; Check.Exception(InsertObjs == null || InsertObjs.Count() == 0, "InsertObjs is null"); int i = 0; + DataAop(InsertObjs); foreach (var item in InsertObjs) { List insertItem = new List(); @@ -232,6 +233,15 @@ namespace SqlSugar } } + private void DataAop(T [] items) + { + var dataEvent = this.Context.CurrentConnectionConfig.AopEvents?.DataExecuting; + if (dataEvent != null && items != null) + { + dataEvent(null, new DataFilterModel() { OperationType = DataFilterType.BatchInsertByObject, EntityValue = items, EntityColumnInfo = this.EntityInfo.Columns.FirstOrDefault() }); + } + } + private void DataChangeAop(T [] items) { @@ -263,6 +273,8 @@ namespace SqlSugar } } } + + dataEvent(null, new DataFilterModel() { OperationType = DataFilterType.BatchInsertByObject, EntityValue = items, EntityColumnInfo = this.EntityInfo.Columns.FirstOrDefault() }); } } diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/UpdateProvider/UpdateableHelper.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/UpdateProvider/UpdateableHelper.cs index cc41dfedf..54a3469e9 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/UpdateProvider/UpdateableHelper.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/UpdateProvider/UpdateableHelper.cs @@ -198,6 +198,7 @@ namespace SqlSugar { this.UpdateBuilder.OldPrimaryKeys = this.EntityInfo.Columns.Where(it => it.IsPrimarykey).Select(it=>it.DbColumnName).ToList(); } + DataAop(UpdateObjs); foreach (var item in UpdateObjs) { List updateItem = new List(); @@ -297,6 +298,15 @@ namespace SqlSugar } } + private void DataAop(T[] items) + { + var dataEvent = this.Context.CurrentConnectionConfig.AopEvents?.DataExecuting; + if (dataEvent != null && items != null) + { + dataEvent(null, new DataFilterModel() { OperationType = DataFilterType.BatchUpdateByObject, EntityValue = items, EntityColumnInfo = this.EntityInfo.Columns.FirstOrDefault() }); + } + } + private void DataChangesAop(T [] items) { if (typeof(T).FullName.StartsWith("System.Collections.Generic.Dictionary`")) @@ -331,6 +341,8 @@ namespace SqlSugar } } } + dataEvent(null, new DataFilterModel() { OperationType = DataFilterType.BatchUpdateByObject, EntityValue = items, EntityColumnInfo = this.EntityInfo.Columns.FirstOrDefault() }); + } } diff --git a/Src/Asp.NetCore2/SqlSugar/Enum/DataFilterType.cs b/Src/Asp.NetCore2/SqlSugar/Enum/DataFilterType.cs index 223229d8a..e293da942 100644 --- a/Src/Asp.NetCore2/SqlSugar/Enum/DataFilterType.cs +++ b/Src/Asp.NetCore2/SqlSugar/Enum/DataFilterType.cs @@ -11,7 +11,10 @@ namespace SqlSugar { UpdateByObject = 0, InsertByObject = 1, - DeleteByObject =2 + DeleteByObject =2, + BatchUpdateByObject = 3, + BatchInsertByObject = 4, + BatchDeleteByObject= 5 } public class DataFilterModel { -- Gitee