diff --git a/Src/Asp.Net/MySqlTest/Demo/Demo3_Insertable.cs b/Src/Asp.Net/MySqlTest/Demo/Demo3_Insertable.cs index 7def0f63b..3b54fc427 100644 --- a/Src/Asp.Net/MySqlTest/Demo/Demo3_Insertable.cs +++ b/Src/Asp.Net/MySqlTest/Demo/Demo3_Insertable.cs @@ -61,12 +61,14 @@ namespace OrmTest db.Insertable(new OrderItem() { CreateTime = DateTime.Now, - ItemId=1, - OrderId=1, - OrderName="a", + ItemId = 1, + OrderId = 1, + OrderName = "a", Price = 11 }).UseMySql().ExecuteBulkCopy(); var data = db.Queryable().ToList(); + db.Insertable(data).UseMySql().ExecuteBulkCopy(); + db.Fastest().BulkUpdate(data); Console.WriteLine("#### Insertable End ####"); } } diff --git a/Src/Asp.Net/SqlSugar/Abstract/FastestProvider/FastBuilder.cs b/Src/Asp.Net/SqlSugar/Abstract/FastestProvider/FastBuilder.cs index 12d350386..bb6e9b34e 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/FastestProvider/FastBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/FastestProvider/FastBuilder.cs @@ -11,13 +11,13 @@ namespace SqlSugar { public SqlSugarProvider Context { get; set; } - public string UpdateSql { get; set; } = @"UPDATE TM + public virtual string UpdateSql { get; set; } = @"UPDATE TM SET {0} FROM {1} TM INNER JOIN {2} TE ON {3} "; - public void CloseDb() + public virtual void CloseDb() { if (this.Context.CurrentConnectionConfig.IsAutoCloseConnection && this.Context.Ado.Transaction == null) { @@ -25,7 +25,7 @@ namespace SqlSugar } } - public async Task UpdateByTempAsync(string tableName, string tempName, string[] updateColumns, string[] whereColumns) + public virtual async Task UpdateByTempAsync(string tableName, string tempName, string[] updateColumns, string[] whereColumns) { Check.ArgumentNullException(!updateColumns.Any(), "update columns count is 0"); Check.ArgumentNullException(!whereColumns.Any(), "where columns count is 0"); @@ -35,7 +35,7 @@ namespace SqlSugar return await this.Context.Ado.ExecuteCommandAsync(sql); } - public async Task CreateTempAsync(DataTable dt) where T : class, new() + public virtual async Task CreateTempAsync(DataTable dt) where T : class, new() { await this.Context.UnionAll( this.Context.Queryable().Where(it => false).AS(dt.TableName), diff --git a/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlFastBuilder.cs b/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlFastBuilder.cs index 8df3b2942..2556d46f0 100644 --- a/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlFastBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlFastBuilder.cs @@ -13,6 +13,7 @@ namespace SqlSugar public class MySqlFastBuilder:FastBuilder,IFastBuilder { + public override string UpdateSql { get; set; } = @"UPDATE {1} TM INNER JOIN {2} TE ON {3} SET {0} "; public async Task ExecuteBulkCopyAsync(DataTable dt) { @@ -61,5 +62,11 @@ namespace SqlSugar } return result; } + public override async Task CreateTempAsync(DataTable dt) + { + dt.TableName = "temp"+SnowFlakeSingle.instance.getID(); + var sql = this.Context.Queryable().Where(it => false).ToSql().Key; + await this.Context.Ado.ExecuteCommandAsync($"Create TEMPORARY table {dt.TableName}({sql}) "); + } } }