Db.Fastest mysql

This commit is contained in:
sunkaixuna 2021-11-19 19:54:26 +08:00
parent 135f3ab53d
commit 0263c42856
3 changed files with 16 additions and 7 deletions

View File

@ -61,12 +61,14 @@ namespace OrmTest
db.Insertable(new OrderItem() db.Insertable(new OrderItem()
{ {
CreateTime = DateTime.Now, CreateTime = DateTime.Now,
ItemId=1, ItemId = 1,
OrderId=1, OrderId = 1,
OrderName="a", OrderName = "a",
Price = 11 Price = 11
}).UseMySql().ExecuteBulkCopy(); }).UseMySql().ExecuteBulkCopy();
var data = db.Queryable<Order>().ToList(); var data = db.Queryable<Order>().ToList();
db.Insertable(data).UseMySql().ExecuteBulkCopy();
db.Fastest<Order>().BulkUpdate(data);
Console.WriteLine("#### Insertable End ####"); Console.WriteLine("#### Insertable End ####");
} }
} }

View File

@ -11,13 +11,13 @@ namespace SqlSugar
{ {
public SqlSugarProvider Context { get; set; } public SqlSugarProvider Context { get; set; }
public string UpdateSql { get; set; } = @"UPDATE TM public virtual string UpdateSql { get; set; } = @"UPDATE TM
SET {0} SET {0}
FROM {1} TM FROM {1} TM
INNER JOIN {2} TE ON {3} "; INNER JOIN {2} TE ON {3} ";
public void CloseDb() public virtual void CloseDb()
{ {
if (this.Context.CurrentConnectionConfig.IsAutoCloseConnection && this.Context.Ado.Transaction == null) if (this.Context.CurrentConnectionConfig.IsAutoCloseConnection && this.Context.Ado.Transaction == null)
{ {
@ -25,7 +25,7 @@ namespace SqlSugar
} }
} }
public async Task<int> UpdateByTempAsync(string tableName, string tempName, string[] updateColumns, string[] whereColumns) public virtual async Task<int> UpdateByTempAsync(string tableName, string tempName, string[] updateColumns, string[] whereColumns)
{ {
Check.ArgumentNullException(!updateColumns.Any(), "update columns count is 0"); Check.ArgumentNullException(!updateColumns.Any(), "update columns count is 0");
Check.ArgumentNullException(!whereColumns.Any(), "where 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); return await this.Context.Ado.ExecuteCommandAsync(sql);
} }
public async Task CreateTempAsync<T>(DataTable dt) where T : class, new() public virtual async Task CreateTempAsync<T>(DataTable dt) where T : class, new()
{ {
await this.Context.UnionAll( await this.Context.UnionAll(
this.Context.Queryable<T>().Where(it => false).AS(dt.TableName), this.Context.Queryable<T>().Where(it => false).AS(dt.TableName),

View File

@ -13,6 +13,7 @@ namespace SqlSugar
public class MySqlFastBuilder:FastBuilder,IFastBuilder 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<int> ExecuteBulkCopyAsync(DataTable dt) public async Task<int> ExecuteBulkCopyAsync(DataTable dt)
{ {
@ -61,5 +62,11 @@ namespace SqlSugar
} }
return result; return result;
} }
public override async Task CreateTempAsync<T>(DataTable dt)
{
dt.TableName = "temp"+SnowFlakeSingle.instance.getID();
var sql = this.Context.Queryable<T>().Where(it => false).ToSql().Key;
await this.Context.Ado.ExecuteCommandAsync($"Create TEMPORARY table {dt.TableName}({sql}) ");
}
} }
} }