diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/FastestProvider/FastestProvider.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/FastestProvider/FastestProvider.cs index 9ff7792f2..3d1f7edd3 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/FastestProvider/FastestProvider.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/FastestProvider/FastestProvider.cs @@ -11,6 +11,7 @@ namespace SqlSugar private SqlSugarProvider context; private ISugarQueryable queryable; private EntityInfo entityInfo { get; set; } + public bool isLog; public FastestProvider(SqlSugarProvider sqlSugarProvider) { this.context = sqlSugarProvider; @@ -78,6 +79,7 @@ namespace SqlSugar #region Core private async Task _BulkUpdate(List datas, string[] whereColumns, string[] updateColumns) { + Begin(datas); var isAuto = this.context.CurrentConnectionConfig.IsAutoCloseConnection; this.context.CurrentConnectionConfig.IsAutoCloseConnection = false; DataTable dt = ToDdateTable(datas); @@ -89,17 +91,41 @@ namespace SqlSugar var result = await buider.UpdateByTempAsync(GetTableName(), dt.TableName, updateColumns, whereColumns); this.context.DbMaintenance.DropTable(dt.TableName); this.context.CurrentConnectionConfig.IsAutoCloseConnection = isAuto; + End(datas); return result; } private async Task _BulkCopy(List datas) { + Begin(datas); DataTable dt = ToDdateTable(datas); IFastBuilder buider =GetBuider(); buider.Context = context; var result = await buider.ExecuteBulkCopyAsync(dt); + End(datas); return result; } #endregion + #region AOP + private void End(List datas) + { + this.context.Ado.IsEnableLogEvent = isLog; + if (this.context.CurrentConnectionConfig?.AopEvents?.OnLogExecuted != null) + { + this.context.CurrentConnectionConfig?.AopEvents?.OnLogExecuted($"End bulkcopy name:{entityInfo.DbTableName} ,count: {datas.Count},current time: {DateTime.Now}" , new SugarParameter[] { }); + } + } + + private void Begin(List datas) + { + isLog = this.context.Ado.IsEnableLogEvent; + this.context.Ado.IsEnableLogEvent = false; + if (this.context.CurrentConnectionConfig?.AopEvents?.OnLogExecuting != null) + { + this.context.CurrentConnectionConfig?.AopEvents?.OnLogExecuting($"Begin bulkcopy name:{entityInfo.DbTableName} ,count: {datas.Count},current time: {DateTime.Now} ", new SugarParameter[] { }); + } + } + #endregion + } } diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/FastestProvider/Private.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/FastestProvider/Private.cs index b789dac1a..ecd762823 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/FastestProvider/Private.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/FastestProvider/Private.cs @@ -20,7 +20,7 @@ namespace SqlSugar case DbType.Sqlite: break; case DbType.Oracle: - break; + return new OracleFastBuilder(); case DbType.PostgreSQL: return new PostgreSQLFastBuilder(this.entityInfo); case DbType.Dm: @@ -32,7 +32,7 @@ namespace SqlSugar default: break; } - throw new Exception(this.context.CurrentConnectionConfig.DbType + "开发中"); + throw new Exception(this.context.CurrentConnectionConfig.DbType + "开发中..."); } private DataTable ToDdateTable(List datas) {