From a8eaca9e588513ce4a0dbf566a447d97bef8cbe6 Mon Sep 17 00:00:00 2001
From: 28810 <28810@YEXIANGQIN>
Date: Mon, 23 Mar 2020 23:17:00 +0800
Subject: [PATCH] =?UTF-8?q?-=20=E4=BC=98=E5=8C=96=20ConnectionPool=20?=
=?UTF-8?q?=E6=8F=90=E5=8D=87=E8=A2=AB=E5=8A=A8=E8=BF=9E=E6=8E=A5=E6=96=AD?=
=?UTF-8?q?=E5=BC=80=E7=9A=84=E4=BD=93=E9=AA=8C=EF=BC=88=E4=BC=9A=E5=8D=A1?=
=?UTF-8?q?=E7=9A=84=E5=8F=AF=E4=BB=A5=E5=8D=87=E7=BA=A7=EF=BC=89=EF=BC=9B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Examples/base_entity/Entities/Class1.cs | 1 -
FreeSql.DbContext/FreeSql.DbContext.xml | 7 +++++++
FreeSql/FreeSql.xml | 2 +-
FreeSql/FreeUtil.cs | 2 +-
FreeSql/Interface/Curd/ISelect/ISelect0.cs | 2 +-
.../MsAccessAdo/MsAccessConnectionPool.cs | 2 +-
.../FreeSql.Provider.MySql/MySqlAdo/MySqlConnectionPool.cs | 5 +++--
.../Dameng/OdbcDamengAdo/OdbcDamengConnectionPool.cs | 2 +-
.../Default/OdbcAdo/OdbcConnectionPool.cs | 2 +-
.../MySql/OdbcMySqlAdo/OdbcMySqlConnectionPool.cs | 2 +-
.../Oracle/OdbcOracleAdo/OdbcOracleConnectionPool.cs | 2 +-
.../OdbcPostgreSQLAdo/OdbcPostgreSQLConnectionPool.cs | 2 +-
.../OdbcSqlServerAdo/OdbcSqlServerConnectionPool.cs | 2 +-
.../OracleAdo/OracleConnectionPool.cs | 5 +++--
.../PostgreSQLAdo/PostgreSQLConnectionPool.cs | 5 +++--
.../SqlServerAdo/SqlServerConnectionPool.cs | 5 +++--
.../SqliteAdo/SqliteConnectionPool.cs | 2 +-
17 files changed, 30 insertions(+), 20 deletions(-)
delete mode 100644 Examples/base_entity/Entities/Class1.cs
diff --git a/Examples/base_entity/Entities/Class1.cs b/Examples/base_entity/Entities/Class1.cs
deleted file mode 100644
index 5f282702..00000000
--- a/Examples/base_entity/Entities/Class1.cs
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml
index 2735cefb..ca7c357b 100644
--- a/FreeSql.DbContext/FreeSql.DbContext.xml
+++ b/FreeSql.DbContext/FreeSql.DbContext.xml
@@ -110,6 +110,13 @@
清空状态数据
+
+
+ 根据 lambda 条件删除数据
+
+
+
+
添加
diff --git a/FreeSql/FreeSql.xml b/FreeSql/FreeSql.xml
index cf900d20..68ddd4ef 100644
--- a/FreeSql/FreeSql.xml
+++ b/FreeSql/FreeSql.xml
@@ -1036,7 +1036,7 @@
以字典的形式返回查询结果
- 注意:字典的特点会导致 OrderBy 排序失效
+ 注意:字典的特点会导致返回的数据无序
diff --git a/FreeSql/FreeUtil.cs b/FreeSql/FreeUtil.cs
index 37e928c9..79c29827 100644
--- a/FreeSql/FreeUtil.cs
+++ b/FreeSql/FreeUtil.cs
@@ -32,7 +32,7 @@ public static class FreeUtil
var uninxtime = (int)now.Subtract(dt1970).TotalSeconds;
int increment = Interlocked.Increment(ref __staticIncrement) & 0x00ffffff;
var rand = rnd.Value.Next(0, int.MaxValue);
- var guid = $"{uninxtime.ToString("x8").PadLeft(8, '0')}{__staticMachine.ToString("x8").PadLeft(8, '0').Substring(2, 6)}{__staticPid.ToString("x8").PadLeft(8, '0').Substring(6, 2)}{increment.ToString("x8").PadLeft(8, '0')}{rand.ToString("x8").PadLeft(8, '0')}";
+ var guid = $"{uninxtime.ToString("x8").PadLeft(8, '0')}{rand.ToString("x8").PadLeft(8, '0')}{__staticMachine.ToString("x8").PadLeft(8, '0').Substring(2, 6)}{__staticPid.ToString("x8").PadLeft(8, '0').Substring(6, 2)}{increment.ToString("x8").PadLeft(8, '0')}";
return Guid.Parse(guid);
}
diff --git a/FreeSql/Interface/Curd/ISelect/ISelect0.cs b/FreeSql/Interface/Curd/ISelect/ISelect0.cs
index a9a98620..80a3ca55 100644
--- a/FreeSql/Interface/Curd/ISelect/ISelect0.cs
+++ b/FreeSql/Interface/Curd/ISelect/ISelect0.cs
@@ -54,7 +54,7 @@ namespace FreeSql
///
/// 以字典的形式返回查询结果
- /// 注意:字典的特点会导致 OrderBy 排序失效
+ /// 注意:字典的特点会导致返回的数据无序
///
///
///
diff --git a/Providers/FreeSql.Provider.MsAccess/MsAccessAdo/MsAccessConnectionPool.cs b/Providers/FreeSql.Provider.MsAccess/MsAccessAdo/MsAccessConnectionPool.cs
index b59384bc..c4d429f7 100644
--- a/Providers/FreeSql.Provider.MsAccess/MsAccessAdo/MsAccessConnectionPool.cs
+++ b/Providers/FreeSql.Provider.MsAccess/MsAccessAdo/MsAccessConnectionPool.cs
@@ -182,7 +182,7 @@ namespace FreeSql.MsAccess
public void OnReturn(Object obj)
{
- if (obj.Value.State != ConnectionState.Closed) try { obj.Value.Close(); } catch { }
+ //if (obj?.Value != null && obj.Value.State != ConnectionState.Closed) try { obj.Value.Close(); } catch { }
}
public void OnAvailable()
diff --git a/Providers/FreeSql.Provider.MySql/MySqlAdo/MySqlConnectionPool.cs b/Providers/FreeSql.Provider.MySql/MySqlAdo/MySqlConnectionPool.cs
index 88479d75..5c3fa614 100644
--- a/Providers/FreeSql.Provider.MySql/MySqlAdo/MySqlConnectionPool.cs
+++ b/Providers/FreeSql.Provider.MySql/MySqlAdo/MySqlConnectionPool.cs
@@ -106,7 +106,8 @@ namespace FreeSql.MySql
public void OnDestroy(DbConnection obj)
{
- if (obj.State != ConnectionState.Closed) obj.Close();
+ try { if (obj.State != ConnectionState.Closed) obj.Close(); } catch { }
+ try { MySqlConnection.ClearPool(obj as MySqlConnection); } catch { }
obj.Dispose();
}
@@ -176,7 +177,7 @@ namespace FreeSql.MySql
public void OnReturn(Object obj)
{
-
+ //if (obj?.Value != null && obj.Value.State != ConnectionState.Closed) try { obj.Value.Close(); } catch { }
}
public void OnAvailable()
diff --git a/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengAdo/OdbcDamengConnectionPool.cs b/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengAdo/OdbcDamengConnectionPool.cs
index 01fabe40..919c9d6b 100644
--- a/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengAdo/OdbcDamengConnectionPool.cs
+++ b/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengAdo/OdbcDamengConnectionPool.cs
@@ -198,7 +198,7 @@ namespace FreeSql.Odbc.Dameng
public void OnReturn(Object obj)
{
-
+ //if (obj?.Value != null && obj.Value.State != ConnectionState.Closed) try { obj.Value.Close(); } catch { }
}
public void OnAvailable()
diff --git a/Providers/FreeSql.Provider.Odbc/Default/OdbcAdo/OdbcConnectionPool.cs b/Providers/FreeSql.Provider.Odbc/Default/OdbcAdo/OdbcConnectionPool.cs
index fb9c6a2f..3379c7b0 100644
--- a/Providers/FreeSql.Provider.Odbc/Default/OdbcAdo/OdbcConnectionPool.cs
+++ b/Providers/FreeSql.Provider.Odbc/Default/OdbcAdo/OdbcConnectionPool.cs
@@ -183,7 +183,7 @@ namespace FreeSql.Odbc.Default
public void OnReturn(Object obj)
{
- if (obj.Value.State != ConnectionState.Closed) try { obj.Value.Close(); } catch { }
+ //if (obj?.Value != null && obj.Value.State != ConnectionState.Closed) try { obj.Value.Close(); } catch { }
}
public void OnAvailable()
diff --git a/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlAdo/OdbcMySqlConnectionPool.cs b/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlAdo/OdbcMySqlConnectionPool.cs
index 45188f84..361de661 100644
--- a/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlAdo/OdbcMySqlConnectionPool.cs
+++ b/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlAdo/OdbcMySqlConnectionPool.cs
@@ -176,7 +176,7 @@ namespace FreeSql.Odbc.MySql
public void OnReturn(Object obj)
{
-
+ //if (obj?.Value != null && obj.Value.State != ConnectionState.Closed) try { obj.Value.Close(); } catch { }
}
public void OnAvailable()
diff --git a/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleAdo/OdbcOracleConnectionPool.cs b/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleAdo/OdbcOracleConnectionPool.cs
index 04215901..cf65c0a4 100644
--- a/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleAdo/OdbcOracleConnectionPool.cs
+++ b/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleAdo/OdbcOracleConnectionPool.cs
@@ -198,7 +198,7 @@ namespace FreeSql.Odbc.Oracle
public void OnReturn(Object obj)
{
-
+ //if (obj?.Value != null && obj.Value.State != ConnectionState.Closed) try { obj.Value.Close(); } catch { }
}
public void OnAvailable()
diff --git a/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLAdo/OdbcPostgreSQLConnectionPool.cs b/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLAdo/OdbcPostgreSQLConnectionPool.cs
index 2b36f586..4b4b0634 100644
--- a/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLAdo/OdbcPostgreSQLConnectionPool.cs
+++ b/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLAdo/OdbcPostgreSQLConnectionPool.cs
@@ -188,7 +188,7 @@ namespace FreeSql.Odbc.PostgreSQL
public void OnReturn(Object obj)
{
-
+ //if (obj?.Value != null && obj.Value.State != ConnectionState.Closed) try { obj.Value.Close(); } catch { }
}
public void OnAvailable()
diff --git a/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerAdo/OdbcSqlServerConnectionPool.cs b/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerAdo/OdbcSqlServerConnectionPool.cs
index fb70774a..a66af427 100644
--- a/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerAdo/OdbcSqlServerConnectionPool.cs
+++ b/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerAdo/OdbcSqlServerConnectionPool.cs
@@ -183,7 +183,7 @@ namespace FreeSql.Odbc.SqlServer
public void OnReturn(Object obj)
{
- if (obj.Value.State != ConnectionState.Closed) try { obj.Value.Close(); } catch { }
+ //if (obj?.Value != null && obj.Value.State != ConnectionState.Closed) try { obj.Value.Close(); } catch { }
}
public void OnAvailable()
diff --git a/Providers/FreeSql.Provider.Oracle/OracleAdo/OracleConnectionPool.cs b/Providers/FreeSql.Provider.Oracle/OracleAdo/OracleConnectionPool.cs
index 9f40af14..3dc769fd 100644
--- a/Providers/FreeSql.Provider.Oracle/OracleAdo/OracleConnectionPool.cs
+++ b/Providers/FreeSql.Provider.Oracle/OracleAdo/OracleConnectionPool.cs
@@ -128,7 +128,8 @@ namespace FreeSql.Oracle
public void OnDestroy(DbConnection obj)
{
- if (obj.State != ConnectionState.Closed) obj.Close();
+ try { if (obj.State != ConnectionState.Closed) obj.Close(); } catch { }
+ try { OracleConnection.ClearPool(obj as OracleConnection); } catch { }
obj.Dispose();
}
@@ -198,7 +199,7 @@ namespace FreeSql.Oracle
public void OnReturn(Object obj)
{
-
+ //if (obj?.Value != null && obj.Value.State != ConnectionState.Closed) try { obj.Value.Close(); } catch { }
}
public void OnAvailable()
diff --git a/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLAdo/PostgreSQLConnectionPool.cs b/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLAdo/PostgreSQLConnectionPool.cs
index 6fc4d7fe..d6d6f29f 100644
--- a/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLAdo/PostgreSQLConnectionPool.cs
+++ b/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLAdo/PostgreSQLConnectionPool.cs
@@ -118,7 +118,8 @@ namespace FreeSql.PostgreSQL
public void OnDestroy(DbConnection obj)
{
- if (obj.State != ConnectionState.Closed) obj.Close();
+ try { if (obj.State != ConnectionState.Closed) obj.Close(); } catch { }
+ try { NpgsqlConnection.ClearPool(obj as NpgsqlConnection); } catch { }
obj.Dispose();
}
@@ -188,7 +189,7 @@ namespace FreeSql.PostgreSQL
public void OnReturn(Object obj)
{
-
+ //if (obj?.Value != null && obj.Value.State != ConnectionState.Closed) try { obj.Value.Close(); } catch { }
}
public void OnAvailable()
diff --git a/Providers/FreeSql.Provider.SqlServer/SqlServerAdo/SqlServerConnectionPool.cs b/Providers/FreeSql.Provider.SqlServer/SqlServerAdo/SqlServerConnectionPool.cs
index a58f8940..4cba9ac5 100644
--- a/Providers/FreeSql.Provider.SqlServer/SqlServerAdo/SqlServerConnectionPool.cs
+++ b/Providers/FreeSql.Provider.SqlServer/SqlServerAdo/SqlServerConnectionPool.cs
@@ -111,7 +111,8 @@ namespace FreeSql.SqlServer
public void OnDestroy(DbConnection obj)
{
- if (obj.State != ConnectionState.Closed) obj.Close();
+ try { if (obj.State != ConnectionState.Closed) obj.Close(); } catch { }
+ try { SqlConnection.ClearPool(obj as SqlConnection); } catch { }
obj.Dispose();
}
@@ -181,7 +182,7 @@ namespace FreeSql.SqlServer
public void OnReturn(Object obj)
{
- if (obj.Value.State != ConnectionState.Closed) try { obj.Value.Close(); } catch { }
+ //if (obj?.Value != null && obj.Value.State != ConnectionState.Closed) try { obj.Value.Close(); } catch { }
}
public void OnAvailable()
diff --git a/Providers/FreeSql.Provider.Sqlite/SqliteAdo/SqliteConnectionPool.cs b/Providers/FreeSql.Provider.Sqlite/SqliteAdo/SqliteConnectionPool.cs
index f2275191..2ed75b19 100644
--- a/Providers/FreeSql.Provider.Sqlite/SqliteAdo/SqliteConnectionPool.cs
+++ b/Providers/FreeSql.Provider.Sqlite/SqliteAdo/SqliteConnectionPool.cs
@@ -204,7 +204,7 @@ namespace FreeSql.Sqlite
public void OnReturn(Object obj)
{
-
+ //if (obj?.Value != null && obj.Value.State != ConnectionState.Closed) try { obj.Value.Close(); } catch { }
}
public void OnAvailable()