mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 10:42:52 +08:00
- 优化 ConnectionPool 提升被动连接断开的体验(会卡的可以升级);
This commit is contained in:
parent
487cefebc8
commit
a8eaca9e58
@ -1 +0,0 @@
|
|||||||
|
|
@ -110,6 +110,13 @@
|
|||||||
清空状态数据
|
清空状态数据
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:FreeSql.DbSet`1.RemoveAsync(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})">
|
||||||
|
<summary>
|
||||||
|
根据 lambda 条件删除数据
|
||||||
|
</summary>
|
||||||
|
<param name="predicate"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:FreeSql.DbSet`1.Add(`0)">
|
<member name="M:FreeSql.DbSet`1.Add(`0)">
|
||||||
<summary>
|
<summary>
|
||||||
添加
|
添加
|
||||||
|
@ -1036,7 +1036,7 @@
|
|||||||
<member name="M:FreeSql.ISelect0`2.ToDictionary``1(System.Func{`1,``0})">
|
<member name="M:FreeSql.ISelect0`2.ToDictionary``1(System.Func{`1,``0})">
|
||||||
<summary>
|
<summary>
|
||||||
以字典的形式返回查询结果<para></para>
|
以字典的形式返回查询结果<para></para>
|
||||||
注意:字典的特点会导致 OrderBy 排序失效
|
注意:字典的特点会导致返回的数据无序
|
||||||
</summary>
|
</summary>
|
||||||
<typeparam name="TKey"></typeparam>
|
<typeparam name="TKey"></typeparam>
|
||||||
<param name="keySelector"></param>
|
<param name="keySelector"></param>
|
||||||
|
@ -32,7 +32,7 @@ public static class FreeUtil
|
|||||||
var uninxtime = (int)now.Subtract(dt1970).TotalSeconds;
|
var uninxtime = (int)now.Subtract(dt1970).TotalSeconds;
|
||||||
int increment = Interlocked.Increment(ref __staticIncrement) & 0x00ffffff;
|
int increment = Interlocked.Increment(ref __staticIncrement) & 0x00ffffff;
|
||||||
var rand = rnd.Value.Next(0, int.MaxValue);
|
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);
|
return Guid.Parse(guid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ namespace FreeSql
|
|||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 以字典的形式返回查询结果<para></para>
|
/// 以字典的形式返回查询结果<para></para>
|
||||||
/// 注意:字典的特点会导致 OrderBy 排序失效
|
/// 注意:字典的特点会导致返回的数据无序
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <typeparam name="TKey"></typeparam>
|
/// <typeparam name="TKey"></typeparam>
|
||||||
/// <param name="keySelector"></param>
|
/// <param name="keySelector"></param>
|
||||||
|
@ -182,7 +182,7 @@ namespace FreeSql.MsAccess
|
|||||||
|
|
||||||
public void OnReturn(Object<DbConnection> obj)
|
public void OnReturn(Object<DbConnection> 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()
|
public void OnAvailable()
|
||||||
|
@ -106,7 +106,8 @@ namespace FreeSql.MySql
|
|||||||
|
|
||||||
public void OnDestroy(DbConnection obj)
|
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();
|
obj.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -176,7 +177,7 @@ namespace FreeSql.MySql
|
|||||||
|
|
||||||
public void OnReturn(Object<DbConnection> obj)
|
public void OnReturn(Object<DbConnection> obj)
|
||||||
{
|
{
|
||||||
|
//if (obj?.Value != null && obj.Value.State != ConnectionState.Closed) try { obj.Value.Close(); } catch { }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnAvailable()
|
public void OnAvailable()
|
||||||
|
@ -198,7 +198,7 @@ namespace FreeSql.Odbc.Dameng
|
|||||||
|
|
||||||
public void OnReturn(Object<DbConnection> obj)
|
public void OnReturn(Object<DbConnection> obj)
|
||||||
{
|
{
|
||||||
|
//if (obj?.Value != null && obj.Value.State != ConnectionState.Closed) try { obj.Value.Close(); } catch { }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnAvailable()
|
public void OnAvailable()
|
||||||
|
@ -183,7 +183,7 @@ namespace FreeSql.Odbc.Default
|
|||||||
|
|
||||||
public void OnReturn(Object<DbConnection> obj)
|
public void OnReturn(Object<DbConnection> 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()
|
public void OnAvailable()
|
||||||
|
@ -176,7 +176,7 @@ namespace FreeSql.Odbc.MySql
|
|||||||
|
|
||||||
public void OnReturn(Object<DbConnection> obj)
|
public void OnReturn(Object<DbConnection> obj)
|
||||||
{
|
{
|
||||||
|
//if (obj?.Value != null && obj.Value.State != ConnectionState.Closed) try { obj.Value.Close(); } catch { }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnAvailable()
|
public void OnAvailable()
|
||||||
|
@ -198,7 +198,7 @@ namespace FreeSql.Odbc.Oracle
|
|||||||
|
|
||||||
public void OnReturn(Object<DbConnection> obj)
|
public void OnReturn(Object<DbConnection> obj)
|
||||||
{
|
{
|
||||||
|
//if (obj?.Value != null && obj.Value.State != ConnectionState.Closed) try { obj.Value.Close(); } catch { }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnAvailable()
|
public void OnAvailable()
|
||||||
|
@ -188,7 +188,7 @@ namespace FreeSql.Odbc.PostgreSQL
|
|||||||
|
|
||||||
public void OnReturn(Object<DbConnection> obj)
|
public void OnReturn(Object<DbConnection> obj)
|
||||||
{
|
{
|
||||||
|
//if (obj?.Value != null && obj.Value.State != ConnectionState.Closed) try { obj.Value.Close(); } catch { }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnAvailable()
|
public void OnAvailable()
|
||||||
|
@ -183,7 +183,7 @@ namespace FreeSql.Odbc.SqlServer
|
|||||||
|
|
||||||
public void OnReturn(Object<DbConnection> obj)
|
public void OnReturn(Object<DbConnection> 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()
|
public void OnAvailable()
|
||||||
|
@ -128,7 +128,8 @@ namespace FreeSql.Oracle
|
|||||||
|
|
||||||
public void OnDestroy(DbConnection obj)
|
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();
|
obj.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -198,7 +199,7 @@ namespace FreeSql.Oracle
|
|||||||
|
|
||||||
public void OnReturn(Object<DbConnection> obj)
|
public void OnReturn(Object<DbConnection> obj)
|
||||||
{
|
{
|
||||||
|
//if (obj?.Value != null && obj.Value.State != ConnectionState.Closed) try { obj.Value.Close(); } catch { }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnAvailable()
|
public void OnAvailable()
|
||||||
|
@ -118,7 +118,8 @@ namespace FreeSql.PostgreSQL
|
|||||||
|
|
||||||
public void OnDestroy(DbConnection obj)
|
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();
|
obj.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -188,7 +189,7 @@ namespace FreeSql.PostgreSQL
|
|||||||
|
|
||||||
public void OnReturn(Object<DbConnection> obj)
|
public void OnReturn(Object<DbConnection> obj)
|
||||||
{
|
{
|
||||||
|
//if (obj?.Value != null && obj.Value.State != ConnectionState.Closed) try { obj.Value.Close(); } catch { }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnAvailable()
|
public void OnAvailable()
|
||||||
|
@ -111,7 +111,8 @@ namespace FreeSql.SqlServer
|
|||||||
|
|
||||||
public void OnDestroy(DbConnection obj)
|
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();
|
obj.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -181,7 +182,7 @@ namespace FreeSql.SqlServer
|
|||||||
|
|
||||||
public void OnReturn(Object<DbConnection> obj)
|
public void OnReturn(Object<DbConnection> 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()
|
public void OnAvailable()
|
||||||
|
@ -204,7 +204,7 @@ namespace FreeSql.Sqlite
|
|||||||
|
|
||||||
public void OnReturn(Object<DbConnection> obj)
|
public void OnReturn(Object<DbConnection> obj)
|
||||||
{
|
{
|
||||||
|
//if (obj?.Value != null && obj.Value.State != ConnectionState.Closed) try { obj.Value.Close(); } catch { }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnAvailable()
|
public void OnAvailable()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user