c# - 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
. 它不提供验证连接字符串的方法。
有人知道该类在构造实例时是否执行连接字符串验证?
解决方案
SqlConnectionStringBuilder 是 SqlClient 连接字符串生成器,因此特定于 Microsoft 的 SQL Server 数据库。SqlConnectionStringBuilder 和 NpgsqlConnectionStringBuilder 都派生自 DbConnectionStringBuilder,它是与数据库无关的基类。
是的,NpgsqlConnectionStringBuilder 验证字符串 - 你可以尝试使用错误的连接字符串。但是,这并不能保证连接实际上会成功 - 只是连接字符串格式正确并且不会尝试使用不受支持的选项等。考虑只是尝试打开连接。
推荐阅读
- php - Second form on page not performing any action
- java - 在生成 Junit 报告期间无法编译样式表
- javascript - Facebook error on product detail page(use Send to messenger plugin)
- javascript - 迭代对象数组的子对象-ReactJS
- r - 为格式化目的创建杂乱的数据
- javascript - 用于数组 html 插入的 jquery 版本的“.innerHTML +=”
- laravel - Laravel Horizon 通过 Google App Engine 部署,进程不启动
- node.js - Is there any way to make join faster, when dealing large amount of data?
- amazon-web-services - AWS API Gateway + Lambda:没有 Auth 标头 -> 错误消息;验证标头 -> 无响应
- python - 批量反向查找