DotNet Core + Dapper 数据库连接池耗尽

Dotnet Core数据库连接池默认是开启状态,连接数默认100,连接超时默认15秒。当然你可设置Pooling=false不启用数据连接池。

Data Source=localhost;Initial Catalog=LOP;User ID=sa;Password=nc;Persist Security Info=True;Pooling=true;Max Pool Size=16;Min Pool Size=0;Connection Lifetime=20;

Dapper对数据库连接池有两种管理方式:程序员自己控制和Dapper托管

        创建IDbConnection后,如果添加conn.Open()代码行,相当于程序员自己管理Open和Closed; 如果你想让Dapper来管理Open和Closed就不要写conn.Open啦; 事务操作例外。

IDbConnection CreateConnection(DatabaseType dbType, string strConn)
{
    IDbConnection connection = null;
    if (string.IsNullOrWhiteSpace(strConn))
        throw new ArgumentNullException("The Database Connection Undefined");

    switch (dbType)
    {
        case DatabaseType.SqlServer:
            connection = new SqlConnection(strConn);
            break;
        case DatabaseType.MySQL:
            connection = new MySqlConnection(strConn);
            break;
        default:
            throw new ArgumentNullException($"The Database Type ({dbType.ToString()}) Not Support");
    }
    //要自己控制 还是Dapper托管
    connection.Open();
}

 

你可能感兴趣的:(DotNet,中间件,c#,数据库)