mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-23 04:23:47 +08:00
Update oracle bulkcopyupdate
This commit is contained in:
@@ -178,6 +178,11 @@ namespace SqlSugar
|
|||||||
IFastBuilder buider = GetBuider();
|
IFastBuilder buider = GetBuider();
|
||||||
ActionIgnoreColums(whereColumns, updateColumns, dt, buider.IsActionUpdateColumns);
|
ActionIgnoreColums(whereColumns, updateColumns, dt, buider.IsActionUpdateColumns);
|
||||||
buider.Context = context;
|
buider.Context = context;
|
||||||
|
if (buider.DbFastestProperties == null)
|
||||||
|
{
|
||||||
|
buider.DbFastestProperties = new DbFastestProperties();
|
||||||
|
}
|
||||||
|
buider.DbFastestProperties.WhereColumns = whereColumns;
|
||||||
await buider.CreateTempAsync<T>(dt);
|
await buider.CreateTempAsync<T>(dt);
|
||||||
await buider.ExecuteBulkCopyAsync(dt);
|
await buider.ExecuteBulkCopyAsync(dt);
|
||||||
//var queryTemp = this.context.Queryable<T>().AS(dt.TableName).ToList();//test
|
//var queryTemp = this.context.Queryable<T>().AS(dt.TableName).ToList();//test
|
||||||
|
@@ -9,5 +9,6 @@ namespace SqlSugar
|
|||||||
public class DbFastestProperties
|
public class DbFastestProperties
|
||||||
{
|
{
|
||||||
public bool HasOffsetTime { get; set; }
|
public bool HasOffsetTime { get; set; }
|
||||||
|
public string[] WhereColumns { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,17 +25,9 @@ namespace SqlSugar
|
|||||||
var oldTableName = dt.TableName;
|
var oldTableName = dt.TableName;
|
||||||
var columns = this.Context.EntityMaintenance.GetEntityInfo<T>().Columns.Where(it => it.IsPrimarykey).Select(it => it.DbColumnName).ToList();
|
var columns = this.Context.EntityMaintenance.GetEntityInfo<T>().Columns.Where(it => it.IsPrimarykey).Select(it => it.DbColumnName).ToList();
|
||||||
dt.TableName = "Temp" + SnowFlakeSingle.instance.getID().ToString();
|
dt.TableName = "Temp" + SnowFlakeSingle.instance.getID().ToString();
|
||||||
if (columns.Count() == 0)
|
if (columns.Count() == 0&& DbFastestProperties!=null&& DbFastestProperties.WhereColumns.HasValue())
|
||||||
{
|
{
|
||||||
var pkColumn = sqlBuilder.GetTranslationColumnName("sys_guid_Id");
|
columns.AddRange(DbFastestProperties.WhereColumns);
|
||||||
var pkColumnName = sqlBuilder.GetNoTranslationColumnName( sqlBuilder.GetTranslationColumnName("sys_guid_Id"));
|
|
||||||
dts.Add("sys_guid() as " + pkColumn);
|
|
||||||
dt.Columns.Add(pkColumnName,typeof(Guid));
|
|
||||||
columns.Add(pkColumnName);
|
|
||||||
foreach (DataRow item in dt.Rows)
|
|
||||||
{
|
|
||||||
item[pkColumnName] = Guid.NewGuid();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
var sql = this.Context.Queryable<T>().AS(oldTableName).Where(it => false).Select(string.Join(",", dts)).ToSql().Key;
|
var sql = this.Context.Queryable<T>().AS(oldTableName).Where(it => false).Select(string.Join(",", dts)).ToSql().Key;
|
||||||
await this.Context.Ado.ExecuteCommandAsync($"create table {dt.TableName} as {sql} ");
|
await this.Context.Ado.ExecuteCommandAsync($"create table {dt.TableName} as {sql} ");
|
||||||
|
Reference in New Issue
Block a user