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