From 70fd324cf317535f7d98d753899c9150bcaca58f Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Tue, 19 May 2020 15:48:39 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E6=95=B4=E7=90=86=20IInsert/IUpdate=20?= =?UTF-8?q?=E5=88=86=E6=89=B9=E5=8F=82=E6=95=B0=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Curd/DamengInsert.cs | 6 +- .../Curd/DamengUpdate.cs | 4 +- .../Curd/MsAccessInsert.cs | 6 +- .../Curd/MsAccessUpdate.cs | 4 +- .../Curd/MySqlInsert.cs | 6 +- .../Curd/MySqlUpdate.cs | 4 +- .../Dameng/Curd/OdbcDamengInsert.cs | 6 +- .../Dameng/Curd/OdbcDamengUpdate.cs | 4 +- .../Default/Curd/OdbcInsert.cs | 14 ++-- .../Default/Curd/OdbcUpdate.cs | 8 +-- .../MySql/Curd/OdbcMySqlInsert.cs | 8 +-- .../MySql/Curd/OdbcMySqlUpdate.cs | 4 +- .../Oracle/Curd/OdbcOracleInsert.cs | 6 +- .../Oracle/Curd/OdbcOracleUpdate.cs | 4 +- .../PostgreSQL/Curd/OdbcPostgreSQLInsert.cs | 8 +-- .../PostgreSQL/Curd/OdbcPostgreSQLUpdate.cs | 6 +- .../SqlServer/Curd/OdbcSqlServerInsert.cs | 69 +++---------------- .../SqlServer/Curd/OdbcSqlServerUpdate.cs | 4 +- .../Curd/OracleInsert.cs | 6 +- .../Curd/OracleUpdate.cs | 4 +- .../Curd/PostgreSQLInsert.cs | 6 +- .../Curd/PostgreSQLUpdate.cs | 4 +- .../Curd/SqlServerInsert.cs | 6 +- .../Curd/SqlServerUpdate.cs | 6 +- .../Curd/SqliteInsert.cs | 6 +- .../Curd/SqliteUpdate.cs | 4 +- 26 files changed, 83 insertions(+), 130 deletions(-) diff --git a/Providers/FreeSql.Provider.Dameng/Curd/DamengInsert.cs b/Providers/FreeSql.Provider.Dameng/Curd/DamengInsert.cs index 74b1bd6b..addd7d09 100644 --- a/Providers/FreeSql.Provider.Dameng/Curd/DamengInsert.cs +++ b/Providers/FreeSql.Provider.Dameng/Curd/DamengInsert.cs @@ -151,9 +151,9 @@ namespace FreeSql.Dameng.Curd #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(500, 999); - public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(500, 999); - public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(500, 999); + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 999); + public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 999); + public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 999); async protected override Task RawExecuteIdentityAsync() { diff --git a/Providers/FreeSql.Provider.Dameng/Curd/DamengUpdate.cs b/Providers/FreeSql.Provider.Dameng/Curd/DamengUpdate.cs index db636a0f..97f8d70c 100644 --- a/Providers/FreeSql.Provider.Dameng/Curd/DamengUpdate.cs +++ b/Providers/FreeSql.Provider.Dameng/Curd/DamengUpdate.cs @@ -65,8 +65,8 @@ namespace FreeSql.Dameng.Curd #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(200, 999); - public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(200, 999); + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_batchRowsLimit > 0 ? _batchRowsLimit : 200, _batchParameterLimit > 0 ? _batchParameterLimit : 999); + public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(_batchRowsLimit > 0 ? _batchRowsLimit : 200, _batchParameterLimit > 0 ? _batchParameterLimit : 999); protected override Task> RawExecuteUpdatedAsync() { diff --git a/Providers/FreeSql.Provider.MsAccess/Curd/MsAccessInsert.cs b/Providers/FreeSql.Provider.MsAccess/Curd/MsAccessInsert.cs index 987a05ca..0e2950f1 100644 --- a/Providers/FreeSql.Provider.MsAccess/Curd/MsAccessInsert.cs +++ b/Providers/FreeSql.Provider.MsAccess/Curd/MsAccessInsert.cs @@ -102,9 +102,9 @@ namespace FreeSql.MsAccess.Curd #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(1000, 2100); - public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(1000, 2100); - public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(1000, 2100); + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(1, 1000); + public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(1, 1000); + public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(1, 1000); async protected override Task RawExecuteAffrowsAsync() { diff --git a/Providers/FreeSql.Provider.MsAccess/Curd/MsAccessUpdate.cs b/Providers/FreeSql.Provider.MsAccess/Curd/MsAccessUpdate.cs index 6a70a096..03fa7091 100644 --- a/Providers/FreeSql.Provider.MsAccess/Curd/MsAccessUpdate.cs +++ b/Providers/FreeSql.Provider.MsAccess/Curd/MsAccessUpdate.cs @@ -68,8 +68,8 @@ namespace FreeSql.MsAccess.Curd #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(500, 2100); - public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(500, 2100); + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(1, 1000); + public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(1, 1000); protected override Task> RawExecuteUpdatedAsync() { diff --git a/Providers/FreeSql.Provider.MySql/Curd/MySqlInsert.cs b/Providers/FreeSql.Provider.MySql/Curd/MySqlInsert.cs index 190e6b7e..6e7d5cae 100644 --- a/Providers/FreeSql.Provider.MySql/Curd/MySqlInsert.cs +++ b/Providers/FreeSql.Provider.MySql/Curd/MySqlInsert.cs @@ -106,9 +106,9 @@ namespace FreeSql.MySql.Curd #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(5000, 3000); - public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(5000, 3000); - public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(5000, 3000); + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 5000, _batchParameterLimit > 0 ? _batchParameterLimit : 3000); + public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 5000, _batchParameterLimit > 0 ? _batchParameterLimit : 3000); + public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 5000, _batchParameterLimit > 0 ? _batchParameterLimit : 3000); async protected override Task RawExecuteIdentityAsync() { diff --git a/Providers/FreeSql.Provider.MySql/Curd/MySqlUpdate.cs b/Providers/FreeSql.Provider.MySql/Curd/MySqlUpdate.cs index 084553f0..4f8c1178 100644 --- a/Providers/FreeSql.Provider.MySql/Curd/MySqlUpdate.cs +++ b/Providers/FreeSql.Provider.MySql/Curd/MySqlUpdate.cs @@ -106,8 +106,8 @@ namespace FreeSql.MySql.Curd #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(500, 3000); - public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(500, 3000); + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_batchRowsLimit > 0 ? _batchRowsLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 3000); + public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(_batchRowsLimit > 0 ? _batchRowsLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 3000); async protected override Task> RawExecuteUpdatedAsync() { diff --git a/Providers/FreeSql.Provider.Odbc/Dameng/Curd/OdbcDamengInsert.cs b/Providers/FreeSql.Provider.Odbc/Dameng/Curd/OdbcDamengInsert.cs index ab779a18..01bb6ae5 100644 --- a/Providers/FreeSql.Provider.Odbc/Dameng/Curd/OdbcDamengInsert.cs +++ b/Providers/FreeSql.Provider.Odbc/Dameng/Curd/OdbcDamengInsert.cs @@ -151,9 +151,9 @@ namespace FreeSql.Odbc.Dameng #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(500, 999); - public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(500, 999); - public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(500, 999); + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 999); + public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 999); + public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 999); async protected override Task RawExecuteIdentityAsync() { diff --git a/Providers/FreeSql.Provider.Odbc/Dameng/Curd/OdbcDamengUpdate.cs b/Providers/FreeSql.Provider.Odbc/Dameng/Curd/OdbcDamengUpdate.cs index 22aa2504..847863bb 100644 --- a/Providers/FreeSql.Provider.Odbc/Dameng/Curd/OdbcDamengUpdate.cs +++ b/Providers/FreeSql.Provider.Odbc/Dameng/Curd/OdbcDamengUpdate.cs @@ -66,8 +66,8 @@ namespace FreeSql.Odbc.Dameng #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(200, 999); - public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(200, 999); + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_batchRowsLimit > 0 ? _batchRowsLimit : 200, _batchParameterLimit > 0 ? _batchParameterLimit : 999); + public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(_batchRowsLimit > 0 ? _batchRowsLimit : 200, _batchParameterLimit > 0 ? _batchParameterLimit : 999); protected override Task> RawExecuteUpdatedAsync() { diff --git a/Providers/FreeSql.Provider.Odbc/Default/Curd/OdbcInsert.cs b/Providers/FreeSql.Provider.Odbc/Default/Curd/OdbcInsert.cs index 3abd6fd4..823d76ed 100644 --- a/Providers/FreeSql.Provider.Odbc/Default/Curd/OdbcInsert.cs +++ b/Providers/FreeSql.Provider.Odbc/Default/Curd/OdbcInsert.cs @@ -19,9 +19,9 @@ namespace FreeSql.Odbc.Default _utils = _commonUtils as OdbcUtils; } - public override int ExecuteAffrows() => base.SplitExecuteAffrows(_utils.Adapter.InsertBatchSplitLimit, 255); - public override long ExecuteIdentity() => base.SplitExecuteIdentity(_utils.Adapter.InsertBatchSplitLimit, 255); - public override List ExecuteInserted() => base.SplitExecuteInserted(_utils.Adapter.InsertBatchSplitLimit, 255); + public override int ExecuteAffrows() => base.SplitExecuteAffrows(_batchValuesLimit > 0 ? _batchValuesLimit : _utils.Adapter.InsertBatchSplitLimit, _batchParameterLimit > 0 ? _batchParameterLimit : 255); + public override long ExecuteIdentity() => base.SplitExecuteIdentity(_batchValuesLimit > 0 ? _batchValuesLimit : _utils.Adapter.InsertBatchSplitLimit, _batchParameterLimit > 0 ? _batchParameterLimit : 255); + public override List ExecuteInserted() => base.SplitExecuteInserted(_batchValuesLimit > 0 ? _batchValuesLimit : _utils.Adapter.InsertBatchSplitLimit, _batchParameterLimit > 0 ? _batchParameterLimit : 255); protected override long RawExecuteIdentity() { @@ -65,10 +65,10 @@ namespace FreeSql.Odbc.Default #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_utils.Adapter.InsertBatchSplitLimit, 255); - public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(_utils.Adapter.InsertBatchSplitLimit, 255); - public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(_utils.Adapter.InsertBatchSplitLimit, 255); - + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_batchValuesLimit > 0 ? _batchValuesLimit : _utils.Adapter.InsertBatchSplitLimit, _batchParameterLimit > 0 ? _batchParameterLimit : 255); + public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(_batchValuesLimit > 0 ? _batchValuesLimit : _utils.Adapter.InsertBatchSplitLimit, _batchParameterLimit > 0 ? _batchParameterLimit : 255); + public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(_batchValuesLimit > 0 ? _batchValuesLimit : _utils.Adapter.InsertBatchSplitLimit, _batchParameterLimit > 0 ? _batchParameterLimit : 255); + async protected override Task RawExecuteIdentityAsync() { var sql = this.ToSql(); diff --git a/Providers/FreeSql.Provider.Odbc/Default/Curd/OdbcUpdate.cs b/Providers/FreeSql.Provider.Odbc/Default/Curd/OdbcUpdate.cs index b24bb642..e33c4a14 100644 --- a/Providers/FreeSql.Provider.Odbc/Default/Curd/OdbcUpdate.cs +++ b/Providers/FreeSql.Provider.Odbc/Default/Curd/OdbcUpdate.cs @@ -19,8 +19,8 @@ namespace FreeSql.Odbc.Default _utils = _commonUtils as OdbcUtils; } - public override int ExecuteAffrows() => base.SplitExecuteAffrows(_utils.Adapter.InsertBatchSplitLimit, 255); - public override List ExecuteUpdated() => base.SplitExecuteUpdated(_utils.Adapter.InsertBatchSplitLimit, 255); + public override int ExecuteAffrows() => base.SplitExecuteAffrows(_batchRowsLimit > 0 ? _batchRowsLimit : _utils.Adapter.UpdateBatchSplitLimit, _batchParameterLimit > 0 ? _batchParameterLimit : 255); + public override List ExecuteUpdated() => base.SplitExecuteUpdated(_batchRowsLimit > 0 ? _batchRowsLimit : _utils.Adapter.UpdateBatchSplitLimit, _batchParameterLimit > 0 ? _batchParameterLimit : 255); protected override List RawExecuteUpdated() => throw new NotImplementedException("FreeSql.Odbc.Default 未实现该功能"); @@ -61,8 +61,8 @@ namespace FreeSql.Odbc.Default #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_utils.Adapter.InsertBatchSplitLimit, 255); - public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(_utils.Adapter.InsertBatchSplitLimit, 255); + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_batchRowsLimit > 0 ? _batchRowsLimit : _utils.Adapter.UpdateBatchSplitLimit, _batchParameterLimit > 0 ? _batchParameterLimit : 255); + public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(_batchRowsLimit > 0 ? _batchRowsLimit : _utils.Adapter.UpdateBatchSplitLimit, _batchParameterLimit > 0 ? _batchParameterLimit : 255); protected override Task> RawExecuteUpdatedAsync() => throw new NotImplementedException("FreeSql.Odbc.Default 未实现该功能"); #endif diff --git a/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlInsert.cs b/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlInsert.cs index 88a9c9b5..a99cfaf4 100644 --- a/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlInsert.cs +++ b/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlInsert.cs @@ -98,10 +98,10 @@ namespace FreeSql.Odbc.MySql #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(5000, 3000); - public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(5000, 3000); - public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(5000, 3000); - + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 5000, _batchParameterLimit > 0 ? _batchParameterLimit : 3000); + public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 5000, _batchParameterLimit > 0 ? _batchParameterLimit : 3000); + public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 5000, _batchParameterLimit > 0 ? _batchParameterLimit : 3000); + async protected override Task RawExecuteIdentityAsync() { var sql = this.ToSql(); diff --git a/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlUpdate.cs b/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlUpdate.cs index 4613ed9d..2b12d47c 100644 --- a/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlUpdate.cs +++ b/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlUpdate.cs @@ -100,8 +100,8 @@ namespace FreeSql.Odbc.MySql #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(500, 3000); - public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(500, 3000); + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_batchRowsLimit > 0 ? _batchRowsLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 3000); + public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(_batchRowsLimit > 0 ? _batchRowsLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 3000); async protected override Task> RawExecuteUpdatedAsync() { diff --git a/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleInsert.cs b/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleInsert.cs index da47a7a5..0f2af13a 100644 --- a/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleInsert.cs +++ b/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleInsert.cs @@ -151,9 +151,9 @@ namespace FreeSql.Odbc.Oracle #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(500, 999); - public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(500, 999); - public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(500, 999); + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 999); + public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 999); + public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 999); async protected override Task RawExecuteIdentityAsync() { diff --git a/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleUpdate.cs b/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleUpdate.cs index 97f4f680..9e52f3c7 100644 --- a/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleUpdate.cs +++ b/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleUpdate.cs @@ -66,8 +66,8 @@ namespace FreeSql.Odbc.Oracle #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(200, 999); - public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(200, 999); + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_batchRowsLimit > 0 ? _batchRowsLimit : 200, _batchParameterLimit > 0 ? _batchParameterLimit : 999); + public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(_batchRowsLimit > 0 ? _batchRowsLimit : 200, _batchParameterLimit > 0 ? _batchParameterLimit : 999); protected override Task> RawExecuteUpdatedAsync() { diff --git a/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLInsert.cs b/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLInsert.cs index a2a2a2a2..4d457731 100644 --- a/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLInsert.cs +++ b/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLInsert.cs @@ -109,10 +109,10 @@ namespace FreeSql.Odbc.PostgreSQL #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(5000, 3000); - public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(5000, 3000); - public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(5000, 3000); - + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 5000, _batchParameterLimit > 0 ? _batchParameterLimit : 3000); + public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 5000, _batchParameterLimit > 0 ? _batchParameterLimit : 3000); + public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 5000, _batchParameterLimit > 0 ? _batchParameterLimit : 3000); + async protected override Task RawExecuteIdentityAsync() { var sql = this.ToSql(); diff --git a/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLUpdate.cs b/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLUpdate.cs index 8bb51100..f6e79b76 100644 --- a/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLUpdate.cs +++ b/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLUpdate.cs @@ -108,9 +108,9 @@ namespace FreeSql.Odbc.PostgreSQL #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(500, 3000); - public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(500, 3000); - + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_batchRowsLimit > 0 ? _batchRowsLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 3000); + public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(_batchRowsLimit > 0 ? _batchRowsLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 3000); + async protected override Task> RawExecuteUpdatedAsync() { var sql = this.ToSql(); diff --git a/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerInsert.cs b/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerInsert.cs index 8c8fd511..391105d1 100644 --- a/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerInsert.cs +++ b/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerInsert.cs @@ -21,34 +21,14 @@ namespace FreeSql.Odbc.SqlServer public override long ExecuteIdentity() => base.SplitExecuteIdentity(_batchValuesLimit > 0 ? _batchValuesLimit : 1000, _batchParameterLimit > 0 ? _batchParameterLimit : 2100); public override List ExecuteInserted() => base.SplitExecuteInserted(_batchValuesLimit > 0 ? _batchValuesLimit : 1000, _batchParameterLimit > 0 ? _batchParameterLimit : 2100); - protected override int RawExecuteAffrows() + public override string ToSql() { var versionGreaterThan10 = (_commonUtils as OdbcSqlServerUtils).ServerVersion > 10; - var sql = versionGreaterThan10 ? this.ToSql() : this.ToSqlValuesOrSelectUnionAll(false); - var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params); - _orm.Aop.CurdBeforeHandler?.Invoke(this, before); - var affrows = 0; - Exception exception = null; - try - { - affrows = _orm.Ado.ExecuteNonQuery(_connection, _transaction, CommandType.Text, sql, _params); - } - catch (Exception ex) - { - exception = ex; - throw ex; - } - finally - { - var after = new Aop.CurdAfterEventArgs(before, exception, affrows); - _orm.Aop.CurdAfterHandler?.Invoke(this, after); - } - return affrows; + return this.ToSqlValuesOrSelectUnionAll(versionGreaterThan10); } protected override long RawExecuteIdentity() { - var versionGreaterThan10 = (_commonUtils as OdbcSqlServerUtils).ServerVersion > 10; - var sql = versionGreaterThan10 ? this.ToSql() : this.ToSqlValuesOrSelectUnionAll(false); + var sql = this.ToSql(); if (string.IsNullOrEmpty(sql)) return 0; sql = string.Concat(sql, "; SELECT SCOPE_IDENTITY();"); @@ -74,8 +54,7 @@ namespace FreeSql.Odbc.SqlServer } protected override List RawExecuteInserted() { - var versionGreaterThan10 = (_commonUtils as OdbcSqlServerUtils).ServerVersion > 10; - var sql = versionGreaterThan10 ? this.ToSql() : this.ToSqlValuesOrSelectUnionAll(false); + var sql = this.ToSql(); if (string.IsNullOrEmpty(sql)) return new List(); var sb = new StringBuilder(); @@ -88,7 +67,7 @@ namespace FreeSql.Odbc.SqlServer ++colidx; } - if (versionGreaterThan10) + if ((_commonUtils as OdbcSqlServerUtils).ServerVersion > 10) { var validx = sql.IndexOf(") VALUES"); if (validx == -1) throw new ArgumentException("找不到 VALUES"); @@ -127,38 +106,13 @@ namespace FreeSql.Odbc.SqlServer #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(1000, 2100); - public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(1000, 2100); - public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(1000, 2100); + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 1000, _batchParameterLimit > 0 ? _batchParameterLimit : 2100); + public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 1000, _batchParameterLimit > 0 ? _batchParameterLimit : 2100); + public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 1000, _batchParameterLimit > 0 ? _batchParameterLimit : 2100); - async protected override Task RawExecuteAffrowsAsync() - { - var versionGreaterThan10 = (_commonUtils as OdbcSqlServerUtils).ServerVersion > 10; - var sql = versionGreaterThan10 ? this.ToSql() : this.ToSqlValuesOrSelectUnionAll(false); - var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Insert, sql, _params); - _orm.Aop.CurdBeforeHandler?.Invoke(this, before); - var affrows = 0; - Exception exception = null; - try - { - affrows = await _orm.Ado.ExecuteNonQueryAsync(_connection, _transaction, CommandType.Text, sql, _params); - } - catch (Exception ex) - { - exception = ex; - throw ex; - } - finally - { - var after = new Aop.CurdAfterEventArgs(before, exception, affrows); - _orm.Aop.CurdAfterHandler?.Invoke(this, after); - } - return affrows; - } async protected override Task RawExecuteIdentityAsync() { - var versionGreaterThan10 = (_commonUtils as OdbcSqlServerUtils).ServerVersion > 10; - var sql = versionGreaterThan10 ? this.ToSql() : this.ToSqlValuesOrSelectUnionAll(false); + var sql = this.ToSql(); if (string.IsNullOrEmpty(sql)) return 0; sql = string.Concat(sql, "; SELECT SCOPE_IDENTITY();"); @@ -184,8 +138,7 @@ namespace FreeSql.Odbc.SqlServer } async protected override Task> RawExecuteInsertedAsync() { - var versionGreaterThan10 = (_commonUtils as OdbcSqlServerUtils).ServerVersion > 10; - var sql = versionGreaterThan10 ? this.ToSql() : this.ToSqlValuesOrSelectUnionAll(false); + var sql = this.ToSql(); if (string.IsNullOrEmpty(sql)) return new List(); var sb = new StringBuilder(); @@ -198,7 +151,7 @@ namespace FreeSql.Odbc.SqlServer ++colidx; } - if (versionGreaterThan10) + if ((_commonUtils as SqlServerUtils).ServerVersion > 10) { var validx = sql.IndexOf(") VALUES"); if (validx == -1) throw new ArgumentException("找不到 VALUES"); diff --git a/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerUpdate.cs b/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerUpdate.cs index 3af0446f..b564ef82 100644 --- a/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerUpdate.cs +++ b/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerUpdate.cs @@ -102,8 +102,8 @@ namespace FreeSql.Odbc.SqlServer #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(500, 2100); - public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(500, 2100); + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_batchRowsLimit > 0 ? _batchRowsLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 2100); + public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(_batchRowsLimit > 0 ? _batchRowsLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 2100); async protected override Task> RawExecuteUpdatedAsync() { diff --git a/Providers/FreeSql.Provider.Oracle/Curd/OracleInsert.cs b/Providers/FreeSql.Provider.Oracle/Curd/OracleInsert.cs index 93db5277..bf9c9902 100644 --- a/Providers/FreeSql.Provider.Oracle/Curd/OracleInsert.cs +++ b/Providers/FreeSql.Provider.Oracle/Curd/OracleInsert.cs @@ -152,9 +152,9 @@ namespace FreeSql.Oracle.Curd #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(500, 999); - public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(500, 999); - public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(500, 999); + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 999); + public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 999); + public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 999); async protected override Task RawExecuteIdentityAsync() { diff --git a/Providers/FreeSql.Provider.Oracle/Curd/OracleUpdate.cs b/Providers/FreeSql.Provider.Oracle/Curd/OracleUpdate.cs index d24b384d..0b65e0fb 100644 --- a/Providers/FreeSql.Provider.Oracle/Curd/OracleUpdate.cs +++ b/Providers/FreeSql.Provider.Oracle/Curd/OracleUpdate.cs @@ -66,8 +66,8 @@ namespace FreeSql.Oracle.Curd #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(200, 999); - public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(200, 999); + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_batchRowsLimit > 0 ? _batchRowsLimit : 200, _batchParameterLimit > 0 ? _batchParameterLimit : 999); + public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(_batchRowsLimit > 0 ? _batchRowsLimit : 200, _batchParameterLimit > 0 ? _batchParameterLimit : 999); protected override Task> RawExecuteUpdatedAsync() { diff --git a/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLInsert.cs b/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLInsert.cs index d010dd01..8745d19b 100644 --- a/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLInsert.cs +++ b/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLInsert.cs @@ -122,9 +122,9 @@ namespace FreeSql.PostgreSQL.Curd #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(5000, 3000); - public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(5000, 3000); - public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(5000, 3000); + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 5000, _batchParameterLimit > 0 ? _batchParameterLimit : 3000); + public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 5000, _batchParameterLimit > 0 ? _batchParameterLimit : 3000); + public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 5000, _batchParameterLimit > 0 ? _batchParameterLimit : 3000); async protected override Task RawExecuteIdentityAsync() { diff --git a/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLUpdate.cs b/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLUpdate.cs index 4d7f248f..364a7f00 100644 --- a/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLUpdate.cs +++ b/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLUpdate.cs @@ -118,8 +118,8 @@ namespace FreeSql.PostgreSQL.Curd #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(500, 3000); - public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(500, 3000); + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_batchRowsLimit > 0 ? _batchRowsLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 3000); + public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(_batchRowsLimit > 0 ? _batchRowsLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 3000); async protected override Task> RawExecuteUpdatedAsync() { diff --git a/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerInsert.cs b/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerInsert.cs index c99cbbb6..ee942b3b 100644 --- a/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerInsert.cs +++ b/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerInsert.cs @@ -111,9 +111,9 @@ namespace FreeSql.SqlServer.Curd #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(1000, 2100); - public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(1000, 2100); - public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(1000, 2100); + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 1000, _batchParameterLimit > 0 ? _batchParameterLimit : 2100); + public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 1000, _batchParameterLimit > 0 ? _batchParameterLimit : 2100); + public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 1000, _batchParameterLimit > 0 ? _batchParameterLimit : 2100); async protected override Task RawExecuteIdentityAsync() { diff --git a/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerUpdate.cs b/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerUpdate.cs index d2ea517c..c67b1b25 100644 --- a/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerUpdate.cs +++ b/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerUpdate.cs @@ -103,9 +103,9 @@ namespace FreeSql.SqlServer.Curd #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(500, 2100); - public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(500, 2100); - + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_batchRowsLimit > 0 ? _batchRowsLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 2100); + public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(_batchRowsLimit > 0 ? _batchRowsLimit : 500, _batchParameterLimit > 0 ? _batchParameterLimit : 2100); + async protected override Task> RawExecuteUpdatedAsync() { var sql = this.ToSql(); diff --git a/Providers/FreeSql.Provider.Sqlite/Curd/SqliteInsert.cs b/Providers/FreeSql.Provider.Sqlite/Curd/SqliteInsert.cs index d3ac22ba..49dd1191 100644 --- a/Providers/FreeSql.Provider.Sqlite/Curd/SqliteInsert.cs +++ b/Providers/FreeSql.Provider.Sqlite/Curd/SqliteInsert.cs @@ -59,9 +59,9 @@ namespace FreeSql.Sqlite.Curd #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(5000, 999); - public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(5000, 999); - public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(5000, 999); + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 5000, _batchParameterLimit > 0 ? _batchParameterLimit : 999); + public override Task ExecuteIdentityAsync() => base.SplitExecuteIdentityAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 5000, _batchParameterLimit > 0 ? _batchParameterLimit : 999); + public override Task> ExecuteInsertedAsync() => base.SplitExecuteInsertedAsync(_batchValuesLimit > 0 ? _batchValuesLimit : 5000, _batchParameterLimit > 0 ? _batchParameterLimit : 999); async protected override Task RawExecuteIdentityAsync() { diff --git a/Providers/FreeSql.Provider.Sqlite/Curd/SqliteUpdate.cs b/Providers/FreeSql.Provider.Sqlite/Curd/SqliteUpdate.cs index 507d4e6f..fdf9c3c6 100644 --- a/Providers/FreeSql.Provider.Sqlite/Curd/SqliteUpdate.cs +++ b/Providers/FreeSql.Provider.Sqlite/Curd/SqliteUpdate.cs @@ -66,8 +66,8 @@ namespace FreeSql.Sqlite.Curd #if net40 #else - public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(200, 999); - public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(200, 999); + public override Task ExecuteAffrowsAsync() => base.SplitExecuteAffrowsAsync(_batchRowsLimit > 0 ? _batchRowsLimit : 200, _batchParameterLimit > 0 ? _batchParameterLimit : 999); + public override Task> ExecuteUpdatedAsync() => base.SplitExecuteUpdatedAsync(_batchRowsLimit > 0 ? _batchRowsLimit : 200, _batchParameterLimit > 0 ? _batchParameterLimit : 999); protected override Task> RawExecuteUpdatedAsync() {