如何将 ODBC 连接与 Visual Studio 2019 和 .NET Core 3.0 结合使用?

M.W*_*lff 6 c# odbc .net-core-3.0

我使用 Visual Studio Community 2019 16.3.1。

我想在 .NET Core 3.0 项目中使用 ODBC 连接(该示例适用于 .NET Framework 4.x):

using System.Data.Odbc;

using (OdbcConnection connection = new OdbcConnection(odbcConnectionString))
{
    using (OdbcCommand command =  new OdbcCommand(sql, connection)) 
    {
        command.CommandType = System.Data.CommandType.Text;
        command.CommandTimeout = 0;
        command.Connection.Open();
        string value = Convert.ToString(command.ExecuteScalar());
        return value;
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

错误 CS1069
在命名空间“System.Data.Odbc”中找不到类型名称“OdbcConnection”。此类型已转发到程序集“System.Data.Odbc,Version=4.0.1.0,Culture=neutral,PublicKeyToken=cc7b13ffcd2ddd51”请考虑添加对该程序集的引用。

如果我对 OleDbConnection 类尝试相同的操作,我会收到 OdbcCommand 类的类似消息和类似的错误。

在 Microsoft 文档中,OdbcConnection 类被描述为 System.Data.Odbc 中 .NET Core 3.0 的一部分。

为什么我必须链接到旧版本?

我怎样才能提供所要求的参考资料?

附录我发现.NET Core 3.0中的System.Data.Odbc包仅包含两个类(OdbcPermission和OdbcPermissionAttribute)。.NET Framework 4.8 的 System.Data.Odbc 中包含的所有其他类均丢失。

M.W*_*lff 7

ODBC 和 OleDb 函数包含在 Microsoft.Windows.Compatibility Pack 中。如果您在 NuGet 的帮助下下载此文件,则会找到这些类(针对 .NET Core 3.1 进行测试)。

该软件包可以在这里下载: https ://www.nuget.org/packages/Microsoft.Windows.Compatibility