NpgsqlConnectionStringBuilder 是否能够验证连接字符串?
Is NpgsqlConnectionStringBuilder able to validate a connection string?
我有一个 .Net 5 应用程序,想添加 Ef Core 和 Postgres 支持。我想验证来自 IConfiguration
的数据库连接字符串。基于这个问题
How to check is connection string valid?
我知道继承自 SqlConnectionStringBuilder
的构建器会检查构造函数中的连接字符串。所以我创建了一个演示代码验证的样子
bool Validate(IConfiguration options)
{
try
{
string databaseConnectionString = options.GetConnectionString("Database");
_ = new NpgsqlConnectionStringBuilder(databaseConnectionString);
return true;
}
catch (Exception exception)
{
return false;
}
}
我看过 NpgsqlConnectionStringBuilder
https://www.npgsql.org/doc/api/Npgsql.NpgsqlConnectionStringBuilder.html
并看到它没有继承自 SqlConnectionStringBuilder
。它不提供验证连接字符串的方法。
有人知道 class 在构造实例时是否执行连接字符串验证吗?
SqlConnectionStringBuilder 是 SqlClient 连接字符串生成器,因此特定于 Microsoft 的 SQL Server 数据库。 SqlConnectionStringBuilder 和 NpgsqlConnectionStringBuilder 都派生自 DbConnectionStringBuilder,它是与数据库无关的基础 class.
是的,NpgsqlConnectionStringBuilder 会验证字符串 - 您可以尝试使用错误的连接字符串。但是,这并不能保证连接实际上会成功 - 只是连接字符串格式正确并且不会尝试使用不受支持的选项等。考虑只尝试打开连接。
我有一个 .Net 5 应用程序,想添加 Ef Core 和 Postgres 支持。我想验证来自 IConfiguration
的数据库连接字符串。基于这个问题
How to check is connection string valid?
我知道继承自 SqlConnectionStringBuilder
的构建器会检查构造函数中的连接字符串。所以我创建了一个演示代码验证的样子
bool Validate(IConfiguration options)
{
try
{
string databaseConnectionString = options.GetConnectionString("Database");
_ = new NpgsqlConnectionStringBuilder(databaseConnectionString);
return true;
}
catch (Exception exception)
{
return false;
}
}
我看过 NpgsqlConnectionStringBuilder
https://www.npgsql.org/doc/api/Npgsql.NpgsqlConnectionStringBuilder.html
并看到它没有继承自 SqlConnectionStringBuilder
。它不提供验证连接字符串的方法。
有人知道 class 在构造实例时是否执行连接字符串验证吗?
SqlConnectionStringBuilder 是 SqlClient 连接字符串生成器,因此特定于 Microsoft 的 SQL Server 数据库。 SqlConnectionStringBuilder 和 NpgsqlConnectionStringBuilder 都派生自 DbConnectionStringBuilder,它是与数据库无关的基础 class.
是的,NpgsqlConnectionStringBuilder 会验证字符串 - 您可以尝试使用错误的连接字符串。但是,这并不能保证连接实际上会成功 - 只是连接字符串格式正确并且不会尝试使用不受支持的选项等。考虑只尝试打开连接。