如何仅从连接字符串中检测 DbConnection 类型名称
How do I detect DbConnection type name from Connection string only
是否有新的或现有的方法来解析连接字符串的键以确定连接类型(OleDbConnection、OdbcConnection、SqlConnection、MySqlConnection、DB2Connetrion 等)?
它需要使用 .NET Standard 或 .NET Core 或 .NET 5,而不是 .Net Framework。
结果 returned 应该是名称字符串或连接类型解析名称的枚举,而不是实际的 DbConnection。
正在考虑使用 DbConnectionStringBuilder,如果它包含键:
- “提供者”return“OleDbConnection”。
- “驱动程序”return“OdbcConnection”。
这是我需要帮助识别的所有其他连接字符串提供程序。
我不知道为什么您需要确定连接字符串对应于哪个提供程序。如果要自动猜测要使用哪个提供程序,您可能应该考虑显式提供连接字符串和提供程序。仅根据连接字符串猜测提供者只是:猜测。这不可能是万无一失的解决方案。
话虽这么说,这里有一些指向常见 ADO.NET 提供程序的指针,以及它们的连接字符串中使用的关键字列表。
- Microsoft.Data.SqlClient keywords: SqlConnectionString.cs (documentation)
- Npgsql keywords: NpgsqlConnectionStringBuilder.cs (documentation)
- MySql.Data keywords: MySqlConnectionStringBuilder.cs (documentation)
- MySqlConnector keywords: MySqlConnectionStringBuilder.cs (documentation)
- Microsoft.Data.Sqlite.Core keywords: SqliteConnectionStringBuilder.cs (documentation)
- System.Data.SQLite keywords: SQLiteConnectionStringBuilder.cs
- Oracle.ManagedDataAccess and Oracle.ManagedDataAccess.Core keywords: OracleConnectionStringBuilder documentation
从那里,您可以提取所有关键字并编写启发式算法来计算给定连接字符串最有可能的提供程序。
是否有新的或现有的方法来解析连接字符串的键以确定连接类型(OleDbConnection、OdbcConnection、SqlConnection、MySqlConnection、DB2Connetrion 等)?
它需要使用 .NET Standard 或 .NET Core 或 .NET 5,而不是 .Net Framework。
结果 returned 应该是名称字符串或连接类型解析名称的枚举,而不是实际的 DbConnection。
正在考虑使用 DbConnectionStringBuilder,如果它包含键:
- “提供者”return“OleDbConnection”。
- “驱动程序”return“OdbcConnection”。
这是我需要帮助识别的所有其他连接字符串提供程序。
我不知道为什么您需要确定连接字符串对应于哪个提供程序。如果要自动猜测要使用哪个提供程序,您可能应该考虑显式提供连接字符串和提供程序。仅根据连接字符串猜测提供者只是:猜测。这不可能是万无一失的解决方案。
话虽这么说,这里有一些指向常见 ADO.NET 提供程序的指针,以及它们的连接字符串中使用的关键字列表。
- Microsoft.Data.SqlClient keywords: SqlConnectionString.cs (documentation)
- Npgsql keywords: NpgsqlConnectionStringBuilder.cs (documentation)
- MySql.Data keywords: MySqlConnectionStringBuilder.cs (documentation)
- MySqlConnector keywords: MySqlConnectionStringBuilder.cs (documentation)
- Microsoft.Data.Sqlite.Core keywords: SqliteConnectionStringBuilder.cs (documentation)
- System.Data.SQLite keywords: SQLiteConnectionStringBuilder.cs
- Oracle.ManagedDataAccess and Oracle.ManagedDataAccess.Core keywords: OracleConnectionStringBuilder documentation
从那里,您可以提取所有关键字并编写启发式算法来计算给定连接字符串最有可能的提供程序。