由于发布了这个问题,Oracle Managed Client 现在可用(由 Oracle 提供)。我一直在使用它,没有任何问题。不需要寻找 DLL 或特殊配置。只需添加包,修改配置文件,就可以了。NuGet Link和Oracle的一篇关于它的文章。
由于此客户端完全用 .NET 托管代码编写,因此它独立于体系结构,不需要外部 DLL、安装 Oracle 客户端或类似的东西。
您可以使用包管理器将其安装在 VS 中。
Install-Package Oracle.ManagedDataAccess
我已经把它放在 machine.config 文件中(尽管它也可以在 web.config 或 app.config 中工作)。我发现这有助于避免与可能安装的其他驱动程序发生冲突:
<configuration>
<system.data>
<DbProviderFactories>
<remove invariant="Oracle.DataAccess.Client" />
<remove invariant="Oracle.ManagedDataAccess.Client" />
<add name="ODP.NET, Managed Driver"
invariant="Oracle.ManagedDataAccess.Client"
description="Oracle Data Provider for .NET, Managed Driver"
type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
</DbProviderFactories>
</system.data>
<configuration>
然后为您的连接字符串:
<add name="MyConnectionString" connectionString="Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=IPORNAMEOFHOST)(PORT=PORTNUM)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORACLESID)));User Id=ORACLEUSER;Password=ORACLEPASSWORD;" providerName="Oracle.ManagedDataAccess.Client"/>
- IPORNAMEOFHOST= 这是您的服务器的 IP 地址或 DNS 名称。
- PORTNUM= 这是 Oracle 正在侦听的端口号。通常为 1521。
- ORACLESID= 您尝试连接的数据库的 SID。
- ORACLEUSER= 用于连接的用户名。
- ORACLEPASSWORD= 用于连接的密码。