首页 > 解决方案 > NpgsqlConnectionStringBuilder 是否能够验证连接字符串?

问题描述

我有一个 .Net 5 应用程序,并希望添加具有 Postgres 支持的 Ef Core。我想验证来自的数据库连接字符串IConfiguration。基于这个问题

如何检查连接字符串是否有效?

我知道从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. 它不提供验证连接字符串的方法。

有人知道该类在构造实例时是否执行连接字符串验证?

标签: c#entity-framework-corenpgsql

解决方案


SqlConnectionStringBuilder 是 SqlClient 连接字符串生成器,因此特定于 Microsoft 的 SQL Server 数据库。SqlConnectionStringBuilder 和 NpgsqlConnectionStringBuilder 都派生自 DbConnectionStringBuilder,它是与数据库无关的基类。

是的,NpgsqlConnectionStringBuilder 验证字符串 - 你可以尝试使用错误的连接字符串。但是,这并不能保证连接实际上会成功 - 只是连接字符串格式正确并且不会尝试使用不受支持的选项等。考虑只是尝试打开连接。


推荐阅读