From 85ab2b196effdc18c691ae46e51c0e62e60bf7e0 Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Tue, 18 Apr 2023 00:43:18 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E5=A2=9E=E5=8A=A0=20=E9=83=A8=E5=88=86=20L?= =?UTF-8?q?ocalExecuteScalar=20Aop.CommandAfter=20=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=EF=BC=9B#1481?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ClickHouseCodeFirst.cs | 17 +++++++++++++++-- .../MySql/CustomMySqlCodeFirst.cs | 15 ++++++++++++++- .../SqlServer/CustomSqlServerCodeFirst.cs | 15 ++++++++++++++- .../FreeSql.Provider.GBase/GBaseCodeFirst.cs | 15 ++++++++++++++- .../FreeSql.Provider.MySql/MySqlCodeFirst.cs | 15 ++++++++++++++- .../MySql/OdbcMySqlCodeFirst.cs | 15 ++++++++++++++- .../SqlServer/OdbcSqlServerCodeFirst.cs | 15 ++++++++++++++- .../SqlServerCodeFirst.cs | 15 ++++++++++++++- 8 files changed, 113 insertions(+), 9 deletions(-) diff --git a/Providers/FreeSql.Provider.ClickHouse/ClickHouseCodeFirst.cs b/Providers/FreeSql.Provider.ClickHouse/ClickHouseCodeFirst.cs index c08debce..b71c024d 100644 --- a/Providers/FreeSql.Provider.ClickHouse/ClickHouseCodeFirst.cs +++ b/Providers/FreeSql.Provider.ClickHouse/ClickHouseCodeFirst.cs @@ -482,8 +482,21 @@ where a.database in ({0}) and a.table in ({1})", tboldname ?? tbname); cmd.CommandText = sql; cmd.CommandType = CommandType.Text; var before = new Aop.CommandBeforeEventArgs(cmd); - this._orm?.Aop.CommandBeforeHandler?.Invoke(this._orm, before); - return cmd.ExecuteScalar(); + this._orm?.Aop.CommandBeforeHandler?.Invoke(this._orm, before); + Exception afterException = null; + try + { + return cmd.ExecuteScalar(); + } + catch (Exception ex) + { + afterException = ex; + throw; + } + finally + { + this._orm?.Aop.CommandAfterHandler?.Invoke(this._orm, new Aop.CommandAfterEventArgs(before, afterException, null)); + } } } finally diff --git a/Providers/FreeSql.Provider.Custom/MySql/CustomMySqlCodeFirst.cs b/Providers/FreeSql.Provider.Custom/MySql/CustomMySqlCodeFirst.cs index 6efb1899..61546848 100644 --- a/Providers/FreeSql.Provider.Custom/MySql/CustomMySqlCodeFirst.cs +++ b/Providers/FreeSql.Provider.Custom/MySql/CustomMySqlCodeFirst.cs @@ -384,7 +384,20 @@ where a.table_schema IN ({0}) and a.table_name IN ({1}) and a.index_name <> 'PRI cmd.CommandType = CommandType.Text; var before = new Aop.CommandBeforeEventArgs(cmd); this._orm?.Aop.CommandBeforeHandler?.Invoke(this._orm, before); - return cmd.ExecuteScalar(); + Exception afterException = null; + try + { + return cmd.ExecuteScalar(); + } + catch (Exception ex) + { + afterException = ex; + throw; + } + finally + { + this._orm?.Aop.CommandAfterHandler?.Invoke(this._orm, new Aop.CommandAfterEventArgs(before, afterException, null)); + } } } finally diff --git a/Providers/FreeSql.Provider.Custom/SqlServer/CustomSqlServerCodeFirst.cs b/Providers/FreeSql.Provider.Custom/SqlServer/CustomSqlServerCodeFirst.cs index 15e66e4e..ed213e42 100644 --- a/Providers/FreeSql.Provider.Custom/SqlServer/CustomSqlServerCodeFirst.cs +++ b/Providers/FreeSql.Provider.Custom/SqlServer/CustomSqlServerCodeFirst.cs @@ -476,7 +476,20 @@ use [" + database + "];", tboldname ?? tbname); cmd.CommandType = CommandType.Text; var before = new Aop.CommandBeforeEventArgs(cmd); this._orm?.Aop.CommandBeforeHandler?.Invoke(this._orm, before); - return cmd.ExecuteScalar(); + Exception afterException = null; + try + { + return cmd.ExecuteScalar(); + } + catch (Exception ex) + { + afterException = ex; + throw; + } + finally + { + this._orm?.Aop.CommandAfterHandler?.Invoke(this._orm, new Aop.CommandAfterEventArgs(before, afterException, null)); + } } } finally diff --git a/Providers/FreeSql.Provider.GBase/GBaseCodeFirst.cs b/Providers/FreeSql.Provider.GBase/GBaseCodeFirst.cs index af79f04e..6ca4d16e 100644 --- a/Providers/FreeSql.Provider.GBase/GBaseCodeFirst.cs +++ b/Providers/FreeSql.Provider.GBase/GBaseCodeFirst.cs @@ -189,7 +189,20 @@ namespace FreeSql.GBase cmd.CommandType = CommandType.Text; var before = new Aop.CommandBeforeEventArgs(cmd); this._orm?.Aop.CommandBeforeHandler?.Invoke(this._orm, before); - return cmd.ExecuteScalar(); + Exception afterException = null; + try + { + return cmd.ExecuteScalar(); + } + catch (Exception ex) + { + afterException = ex; + throw; + } + finally + { + this._orm?.Aop.CommandAfterHandler?.Invoke(this._orm, new Aop.CommandAfterEventArgs(before, afterException, null)); + } } } finally diff --git a/Providers/FreeSql.Provider.MySql/MySqlCodeFirst.cs b/Providers/FreeSql.Provider.MySql/MySqlCodeFirst.cs index 6a9fbb86..c70a0952 100644 --- a/Providers/FreeSql.Provider.MySql/MySqlCodeFirst.cs +++ b/Providers/FreeSql.Provider.MySql/MySqlCodeFirst.cs @@ -395,7 +395,20 @@ where a.table_schema IN ({0}) and a.table_name IN ({1}) and a.index_name <> 'PRI cmd.CommandType = CommandType.Text; var before = new Aop.CommandBeforeEventArgs(cmd); this._orm?.Aop.CommandBeforeHandler?.Invoke(this._orm, before); - return cmd.ExecuteScalar(); + Exception afterException = null; + try + { + return cmd.ExecuteScalar(); + } + catch (Exception ex) + { + afterException = ex; + throw; + } + finally + { + this._orm?.Aop.CommandAfterHandler?.Invoke(this._orm, new Aop.CommandAfterEventArgs(before, afterException, null)); + } } } finally diff --git a/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlCodeFirst.cs b/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlCodeFirst.cs index 7825d5d8..d970d326 100644 --- a/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlCodeFirst.cs +++ b/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlCodeFirst.cs @@ -385,7 +385,20 @@ where a.table_schema IN ({0}) and a.table_name IN ({1}) and a.index_name <> 'PRI cmd.CommandType = CommandType.Text; var before = new Aop.CommandBeforeEventArgs(cmd); this._orm?.Aop.CommandBeforeHandler?.Invoke(this._orm, before); - return cmd.ExecuteScalar(); + Exception afterException = null; + try + { + return cmd.ExecuteScalar(); + } + catch (Exception ex) + { + afterException = ex; + throw; + } + finally + { + this._orm?.Aop.CommandAfterHandler?.Invoke(this._orm, new Aop.CommandAfterEventArgs(before, afterException, null)); + } } } finally diff --git a/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerCodeFirst.cs b/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerCodeFirst.cs index 8445c9e9..5a5eef61 100644 --- a/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerCodeFirst.cs +++ b/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerCodeFirst.cs @@ -477,7 +477,20 @@ use [" + database + "];", tboldname ?? tbname); cmd.CommandType = CommandType.Text; var before = new Aop.CommandBeforeEventArgs(cmd); this._orm?.Aop.CommandBeforeHandler?.Invoke(this._orm, before); - return cmd.ExecuteScalar(); + Exception afterException = null; + try + { + return cmd.ExecuteScalar(); + } + catch (Exception ex) + { + afterException = ex; + throw; + } + finally + { + this._orm?.Aop.CommandAfterHandler?.Invoke(this._orm, new Aop.CommandAfterEventArgs(before, afterException, null)); + } } } finally diff --git a/Providers/FreeSql.Provider.SqlServer/SqlServerCodeFirst.cs b/Providers/FreeSql.Provider.SqlServer/SqlServerCodeFirst.cs index ae18b74e..859c5938 100644 --- a/Providers/FreeSql.Provider.SqlServer/SqlServerCodeFirst.cs +++ b/Providers/FreeSql.Provider.SqlServer/SqlServerCodeFirst.cs @@ -479,7 +479,20 @@ use [" + database + "];", tboldname ?? tbname); cmd.CommandType = CommandType.Text; var before = new Aop.CommandBeforeEventArgs(cmd); this._orm?.Aop.CommandBeforeHandler?.Invoke(this._orm, before); - return cmd.ExecuteScalar(); + Exception afterException = null; + try + { + return cmd.ExecuteScalar(); + } + catch (Exception ex) + { + afterException = ex; + throw; + } + finally + { + this._orm?.Aop.CommandAfterHandler?.Invoke(this._orm, new Aop.CommandAfterEventArgs(before, afterException, null)); + } } } finally