我正在使用 azure postgres sql,我有一种常用方法可以提供连接字符串,
protected readonly string databaseConnString = "Host={0}.postgres.database.azure.com;Username={1}@{2};Password={3};DB={4};Ssl Mode=Require";
protected virtual async Task<NpgsqlConnection> GetDBConnection()
{
var connString = string.Empty;
NpgsqlConnection conn;
try
{
//certificate check
conn = new NpgsqlConnection(databaseConnString);
try
{
//open the connection
await conn.OpenAsync();
}
catch (PostgresException ex)
{
}
finally
{
//close the connection
await conn.CloseAsync();
}
}
//return connection string
return conn;
}
当我再次使用打开/关闭连接时,我在应用程序的任何地方都在使用上面的连接字符串,
using (var conn = await GetDBConnection())
{
await conn.OpenAsync();
//do the work
await conn.CloseAsync();
}
我正在使用npgsql .net core library
并开始知道这 PgBouncer
在这里无济于事。如何最小化连接打开/关闭并实现连接池?