mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-22 20:13:41 +08:00
Update oracle bulkcopyupdate
This commit is contained in:
@@ -178,6 +178,11 @@ namespace SqlSugar
|
||||
IFastBuilder buider = GetBuider();
|
||||
ActionIgnoreColums(whereColumns, updateColumns, dt, buider.IsActionUpdateColumns);
|
||||
buider.Context = context;
|
||||
if (buider.DbFastestProperties == null)
|
||||
{
|
||||
buider.DbFastestProperties = new DbFastestProperties();
|
||||
}
|
||||
buider.DbFastestProperties.WhereColumns = whereColumns;
|
||||
await buider.CreateTempAsync<T>(dt);
|
||||
await buider.ExecuteBulkCopyAsync(dt);
|
||||
//var queryTemp = this.context.Queryable<T>().AS(dt.TableName).ToList();//test
|
||||
|
@@ -9,5 +9,6 @@ namespace SqlSugar
|
||||
public class DbFastestProperties
|
||||
{
|
||||
public bool HasOffsetTime { get; set; }
|
||||
public string[] WhereColumns { get; set; }
|
||||
}
|
||||
}
|
||||
|
@@ -25,17 +25,9 @@ namespace SqlSugar
|
||||
var oldTableName = dt.TableName;
|
||||
var columns = this.Context.EntityMaintenance.GetEntityInfo<T>().Columns.Where(it => it.IsPrimarykey).Select(it => it.DbColumnName).ToList();
|
||||
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");
|
||||
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();
|
||||
}
|
||||
columns.AddRange(DbFastestProperties.WhereColumns);
|
||||
}
|
||||
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} ");
|
||||
|
Reference in New Issue
Block a user