From 3b0e62338d027caebe3b818a11910f12d8cf9682 Mon Sep 17 00:00:00 2001 From: nsnail Date: Wed, 13 Nov 2024 20:55:56 +0800 Subject: [PATCH] fix: ToDataTable --- FreeSql/Interface/Curd/IInsert.cs | 2 +- FreeSql/Internal/CommonProvider/InsertProvider.cs | 4 ++-- .../FreeSql.Provider.SqlServer.csproj | 2 +- .../FreeSql.Provider.SqlServer/SqlServerExtensions.cs | 8 ++++---- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/FreeSql/Interface/Curd/IInsert.cs b/FreeSql/Interface/Curd/IInsert.cs index b5cd7a4a..675ca1a4 100644 --- a/FreeSql/Interface/Curd/IInsert.cs +++ b/FreeSql/Interface/Curd/IInsert.cs @@ -168,7 +168,7 @@ namespace FreeSql /// IgnoreColumns、InsertColumns /// /// - DataTable ToDataTable(); + DataTable ToDataTable(string tableName); #if net40 #else diff --git a/FreeSql/Internal/CommonProvider/InsertProvider.cs b/FreeSql/Internal/CommonProvider/InsertProvider.cs index 079df9af..05bab664 100644 --- a/FreeSql/Internal/CommonProvider/InsertProvider.cs +++ b/FreeSql/Internal/CommonProvider/InsertProvider.cs @@ -691,10 +691,10 @@ namespace FreeSql.Internal.CommonProvider return sb.ToString(); } - public DataTable ToDataTable() + public DataTable ToDataTable(string tableName = null) { var dt = new DataTable(); - dt.TableName = TableRuleInvoke(); + dt.TableName = tableName ?? TableRuleInvoke(); var dtCols = new List>(); foreach (var col in _table.ColumnsByPosition) { diff --git a/Providers/FreeSql.Provider.SqlServer/FreeSql.Provider.SqlServer.csproj b/Providers/FreeSql.Provider.SqlServer/FreeSql.Provider.SqlServer.csproj index 1c0807dc..54674dad 100644 --- a/Providers/FreeSql.Provider.SqlServer/FreeSql.Provider.SqlServer.csproj +++ b/Providers/FreeSql.Provider.SqlServer/FreeSql.Provider.SqlServer.csproj @@ -37,7 +37,7 @@ - + diff --git a/Providers/FreeSql.Provider.SqlServer/SqlServerExtensions.cs b/Providers/FreeSql.Provider.SqlServer/SqlServerExtensions.cs index 27bd0bb6..81f1521f 100644 --- a/Providers/FreeSql.Provider.SqlServer/SqlServerExtensions.cs +++ b/Providers/FreeSql.Provider.SqlServer/SqlServerExtensions.cs @@ -243,13 +243,13 @@ public static partial class FreeSqlSqlServerGlobalExtensions /// /// /// - public static void ExecuteSqlBulkCopy(this IInsert that, SqlBulkCopyOptions copyOptions = SqlBulkCopyOptions.Default, int? batchSize = null, int? bulkCopyTimeout = null) where T : class + public static void ExecuteSqlBulkCopy(this IInsert that, SqlBulkCopyOptions copyOptions = SqlBulkCopyOptions.Default, int? batchSize = null, int? bulkCopyTimeout = null, string tableName = null) where T : class { var insert = that as FreeSql.SqlServer.Curd.SqlServerInsert; if (insert == null) throw new Exception(CoreStrings.S_Features_Unique("ExecuteSqlBulkCopy", "SqlServer")); if (insert._insertIdentity) copyOptions = copyOptions | SqlBulkCopyOptions.KeepIdentity; - var dt = that.ToDataTable(); + var dt = that.ToDataTable(tableName); if (dt.Rows.Count == 0) return; Action writeToServer = bulkCopy => @@ -337,13 +337,13 @@ public static partial class FreeSqlSqlServerGlobalExtensions var state = ExecuteSqlBulkCopyState(update); return UpdateProvider.ExecuteBulkUpdateAsync(update, state, insert => insert.ExecuteSqlBulkCopyAsync(copyOptions, batchSize, bulkCopyTimeout, cancellationToken)); } - async public static Task ExecuteSqlBulkCopyAsync(this IInsert that, SqlBulkCopyOptions copyOptions = SqlBulkCopyOptions.Default, int? batchSize = null, int? bulkCopyTimeout = null, CancellationToken cancellationToken = default) where T : class + async public static Task ExecuteSqlBulkCopyAsync(this IInsert that, SqlBulkCopyOptions copyOptions = SqlBulkCopyOptions.Default, int? batchSize = null, int? bulkCopyTimeout = null, CancellationToken cancellationToken = default, string tableName = null) where T : class { var insert = that as FreeSql.SqlServer.Curd.SqlServerInsert; if (insert == null) throw new Exception(CoreStrings.S_Features_Unique("ExecuteSqlBulkCopyAsync", "SqlServer")); if (insert._insertIdentity) copyOptions = copyOptions | SqlBulkCopyOptions.KeepIdentity; - var dt = that.ToDataTable(); + var dt = that.ToDataTable(tableName); if (dt.Rows.Count == 0) return; Func writeToServerAsync = bulkCopy =>