传递数据库连接设置以使其正常工作

本文关键字:常工作 工作 数据库连接 设置 | 更新日期: 2023-09-27 17:56:32

c# 中是否有表示数据库连接设置的类或接口?我想将连接设置传递给如下函数:

public DoWorkOnDb(IDbConnectionSettings settings)
{
   SqlConnection connection = new SqlConnection(settings.ConnectionString);
   ...
}

我不想做的是:

  • 传递连接,因为函数应自行处理连接
  • 传递
  • 连接字符串,因为这样就可以传递所有类型的字符串
  • 传递多个字符串,如服务器、数据库、用户、密码,因为这样我必须在函数中构建连接字符串。

传递数据库连接设置以使其正常工作

据我了解,你需要SqlConnectionStringBuilder。然后你需要调用 ToString() 或 TryGetValue() 方法。

SqlConnectionStringBuilder

SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder["Data Source"] = "(local)";
builder["integrated Security"] = true;
builder["Initial Catalog"] = "AdventureWorks";
Console.WriteLine(builder.ConnectionString);

也许您正在寻找包含具有ConnectionStringProviderName属性ConnectionStringSettingsConnectionStringSettingsCollection类。

也许您想将其与DbConnectionStringBuilder结合起来.

就个人而言,我会传递一个功能:

public DoWorkOnDb(Func<SqlConnection> connectionFactory)
{
    using (var connection = connectionFactory())
    {
        // ...
    }
}