diff --git a/Src/Asp.NetCore2/OracleTest/UnitTest/Main.cs b/Src/Asp.NetCore2/OracleTest/UnitTest/Main.cs index d9ea156f0..09c5fb8ed 100644 --- a/Src/Asp.NetCore2/OracleTest/UnitTest/Main.cs +++ b/Src/Asp.NetCore2/OracleTest/UnitTest/Main.cs @@ -34,6 +34,7 @@ namespace OrmTest } public static void Init() { + UnitBulkMerge.Init(); Unit2121.Init(); UCustom01.Init(); Bulk(); diff --git a/Src/Asp.NetCore2/OracleTest/UnitTest/UnitBulkMerge.cs b/Src/Asp.NetCore2/OracleTest/UnitTest/UnitBulkMerge.cs new file mode 100644 index 000000000..56fc27c14 --- /dev/null +++ b/Src/Asp.NetCore2/OracleTest/UnitTest/UnitBulkMerge.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace OrmTest +{ + internal class UnitBulkMerge + { + public static void Init() + { + var db = NewUnitTest.Db; + db.CodeFirst.InitTables(); + db.DbMaintenance.TruncateTable(); + var count=db.Fastest() + .BulkMerge(new List() { new UnitaafdsTest() { Id=Guid.NewGuid() + , CreateTime=DateTime.Now, Name="a"} }); + var list=db.Queryable().ToList(); + list[0].Name = "j"; + var count2 = db.Fastest() + .BulkMerge(list); + var list2 = db.Queryable().ToList(); + for (int i = 0; i < 1000; i++) + { + db.Fastest() + .BulkMerge(list); + } + } + } + public class UnitaafdsTest + { + [SqlSugar.SugarColumn(IsPrimaryKey = true)] + public Guid Id { get; set; } + public string Name { get; set; } + public DateTime CreateTime{ get; set; } + } +} diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/FastestProvider/FastestProvider.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/FastestProvider/FastestProvider.cs index 81ae2c6cd..08a399fe2 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/FastestProvider/FastestProvider.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/FastestProvider/FastestProvider.cs @@ -216,6 +216,7 @@ namespace SqlSugar IFastBuilder buider = GetBuider(); buider.Context = context; await buider.CreateTempAsync(dt); + await buider.ExecuteBulkCopyAsync(dt); var result = await buider.Merge(dt, this.entityInfo,whereColumns,updateColumns); //var queryTemp = this.context.Queryable().AS(dt.TableName).ToList();//test //var result = await buider.UpdateByTempAsync(GetTableName(), dt.TableName, updateColumns, whereColumns);