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()