From 04b6b388bac8cfb40396b3a63c4f36e7d41d2e52 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Thu, 21 Mar 2024 03:35:20 +0800 Subject: [PATCH] Synchronization code --- .../Abstract/FastestProvider/Private.cs | 2 ++ .../QuestDB/SqlBuilder/QuestDBFastBuilder.cs | 26 +------------------ 2 files changed, 3 insertions(+), 25 deletions(-) diff --git a/Src/Asp.Net/SqlSugar/Abstract/FastestProvider/Private.cs b/Src/Asp.Net/SqlSugar/Abstract/FastestProvider/Private.cs index 1ca40d688..ecb9e5b31 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/FastestProvider/Private.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/FastestProvider/Private.cs @@ -44,6 +44,8 @@ namespace SqlSugar break; case DbType.Oscar: break; + case DbType.QuestDB: + return new QuestDBFastBuilder(this.entityInfo); default: break; } diff --git a/Src/Asp.Net/SqlSugar/Realization/QuestDB/SqlBuilder/QuestDBFastBuilder.cs b/Src/Asp.Net/SqlSugar/Realization/QuestDB/SqlBuilder/QuestDBFastBuilder.cs index 21c781187..389adc177 100644 --- a/Src/Asp.Net/SqlSugar/Realization/QuestDB/SqlBuilder/QuestDBFastBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Realization/QuestDB/SqlBuilder/QuestDBFastBuilder.cs @@ -33,31 +33,7 @@ namespace SqlSugar //} public async Task ExecuteBulkCopyAsync(DataTable dt) { - List lsColNames = new List(); - for (int i = 0; i < dt.Columns.Count; i++) - { - lsColNames.Add($"\"{dt.Columns[i].ColumnName}\""); - } - string copyString = $"COPY {dt.TableName} ( {string.Join(",", lsColNames) } ) FROM STDIN (FORMAT BINARY)"; - NpgsqlConnection conn = (NpgsqlConnection)this.Context.Ado.Connection; - var columns = this.Context.DbMaintenance.GetColumnInfosByTableName(this.entityInfo.DbTableName); - try - { - var identityColumnInfo = this.entityInfo.Columns.FirstOrDefault(it => it.IsIdentity); - if (identityColumnInfo != null) - { - throw new Exception("PgSql bulkcopy no support identity"); - } - BulkCopy(dt, copyString, conn, columns); - } - catch (Exception ex) - { - throw ex; - } - finally - { - base.CloseDb(); - } + Check.ExceptionEasy("In the.net framework, use db.Insertable(list).UseParameter().ExecuteCommand() for best insert performance", ".net framework中请使用 db.Insertable(list).UseParameter().ExecuteCommand()方式插入性能最好"); return await Task.FromResult(dt.Rows.Count); }