From 1f8b9535b43e6690469712a2c718122750996b11 Mon Sep 17 00:00:00 2001 From: sunkaixuna <610262374@qq.com> Date: Thu, 18 Nov 2021 02:55:59 +0800 Subject: [PATCH] - --- .../FastestProvider/FastestProvider.cs | 31 +++++++++++++++++-- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/FastestProvider/FastestProvider.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/FastestProvider/FastestProvider.cs index 35ed12ba4..c119a84ac 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/FastestProvider/FastestProvider.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/FastestProvider/FastestProvider.cs @@ -46,12 +46,12 @@ namespace SqlSugar var isAuto = this.context.CurrentConnectionConfig.IsAutoCloseConnection; this.context.CurrentConnectionConfig.IsAutoCloseConnection = false; DataTable dt = ToDdateTable(datas); - IFastBuilder buider = new SqlServerFastBuilder(); + IFastBuilder buider = GetBuider(); buider.Context = context; await buider.CreateTempAsync(dt); await buider.ExecuteBulkCopyAsync(dt); //var queryTemp = this.context.Queryable().AS(dt.TableName).ToList();//test - var result =await buider.UpdateByTempAsync(GetTableName(),dt.TableName,updateColumns, whereColumns); + var result = await buider.UpdateByTempAsync(GetTableName(), dt.TableName, updateColumns, whereColumns); this.context.DbMaintenance.DropTable(dt.TableName); this.context.CurrentConnectionConfig.IsAutoCloseConnection = isAuto; return result; @@ -63,10 +63,35 @@ namespace SqlSugar { this.AsName = tableName; return this; - } + } #endregion #region Helper + private SqlServerFastBuilder GetBuider() + { + switch (this.context.CurrentConnectionConfig.DbType) + { + case DbType.MySql: + break; + case DbType.SqlServer: + return new SqlServerFastBuilder(); + case DbType.Sqlite: + break; + case DbType.Oracle: + break; + case DbType.PostgreSQL: + break; + case DbType.Dm: + break; + case DbType.Kdbndp: + break; + case DbType.Oscar: + break; + default: + break; + } + throw new Exception(this.context.CurrentConnectionConfig.DbType + "开发中"); + } private DataTable ToDdateTable(List datas) { DataTable tempDataTable = ReflectionInoCore.GetInstance().GetOrCreate("BulkCopyAsync" + typeof(T).FullName, () => queryable.Where(it => false).ToDataTable());