diff --git a/Src/Asp.NetCore2/SqlSugar.QuestDb.RestApi/QuestDbPageSizeBulkCopy.cs b/Src/Asp.NetCore2/SqlSugar.QuestDb.RestApi/QuestDbPageSizeBulkCopy.cs new file mode 100644 index 000000000..da78e0ff0 --- /dev/null +++ b/Src/Asp.NetCore2/SqlSugar.QuestDb.RestApi/QuestDbPageSizeBulkCopy.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; + +namespace SqlSugar +{ + public class QuestDbPageSizeBulkCopy + { + private QuestDbRestAPI questDbRestAPI; + private int pageSize; + private ISqlSugarClient db; + public QuestDbPageSizeBulkCopy(QuestDbRestAPI questDbRestAPI, int pageSize, ISqlSugarClient db) + { + this.questDbRestAPI = questDbRestAPI; + this.pageSize = pageSize; + this.db = db; + } + public int BulkCopy(List insertDatas, string dateFormat = "yyyy/M/d H:mm:ss") where T : class, new() + { + int result = 0; + db.Utilities.PageEach(insertDatas, pageSize, pageItems => + { + result+=questDbRestAPI.BulkCopyAsync(pageItems, dateFormat).GetAwaiter().GetResult(); + }); + return result; + } + public async Task BulkCopyAsync(List insertDatas, string dateFormat = "yyyy/M/d H:mm:ss") where T : class, new() + { + int result = 0; + await db.Utilities.PageEachAsync(insertDatas, pageSize, async pageItems => + { + result +=await questDbRestAPI.BulkCopyAsync(pageItems, dateFormat); + }); + return result; + } + } +} diff --git a/Src/Asp.NetCore2/SqlSugar.QuestDb.RestApi/QuestDbRestAPI.cs b/Src/Asp.NetCore2/SqlSugar.QuestDb.RestApi/QuestDbRestAPI.cs index 98473deb5..269ed364d 100644 --- a/Src/Asp.NetCore2/SqlSugar.QuestDb.RestApi/QuestDbRestAPI.cs +++ b/Src/Asp.NetCore2/SqlSugar.QuestDb.RestApi/QuestDbRestAPI.cs @@ -92,6 +92,11 @@ namespace SqlSugar return BulkCopyAsync(insertData, dateFormat).GetAwaiter().GetResult(); } + public QuestDbPageSizeBulkCopy PageSize(int pageSize) + { + QuestDbPageSizeBulkCopy result = new QuestDbPageSizeBulkCopy(this,pageSize,db); + return result; + } /// /// 批量快速插入异步