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()
{
CreateTime = DateTime.Now,
ItemId=1,
OrderId=1,
OrderName="a",
ItemId = 1,
OrderId = 1,
OrderName = "a",
Price = 11
}).UseMySql().ExecuteBulkCopy();
var data = db.Queryable<Order>().ToList();
db.Insertable(data).UseMySql().ExecuteBulkCopy();
db.Fastest<Order>().BulkUpdate(data);
Console.WriteLine("#### Insertable End ####");
}
}

View File

@ -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<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(!whereColumns.Any(), "where columns count is 0");
@ -35,7 +35,7 @@ namespace SqlSugar
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(
this.Context.Queryable<T>().Where(it => false).AS(dt.TableName),

View File

@ -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<int> ExecuteBulkCopyAsync(DataTable dt)
{
@ -61,5 +62,11 @@ namespace SqlSugar
}
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}) ");
}
}
}