.NET 4.6 Oracle.ManagedDataAccess要求

时间:2017-03-27 19:34:03

标签: c# .net .net-4.6 oracle-manageddataaccess

使.NET 4.6应用程序与Oracle协同工作的最低要求是什么?

我们已经在使用Oracle.ManagedDataAccess客户端。我们使用实体框架以及DataSet(TableAdapters,...)进行数据访问。

目前我们始终安装"完整"我们的应用程序的Oracle Administrator客户端大约有1,2 GB,但是真正需要使我们的应用程序与Oracle一起工作吗?

Oracle.ManagedDataAccess驱动程序的Nuget页面显示"不需要安装其他Oracle客户端软件即可连接到Oracle数据库。" https://www.nuget.org/packages/Oracle.ManagedDataAccess/

但是当我在Visual Studio中打开我的应用程序时,我收到以下错误:

The ADO.NET provider with invariant name 'Oracle.ManagedDataAccess.Client' is either not registered in the machine or application config file, or could not be loaded. See the inner exception for details.

我试图在Oracle文档中找到它,但没有机会这样做,它太混乱了。

此外:64位托管Oracle客户端也在使用32位应用程序,反之亦然?

1 个答案:

答案 0 :(得分:1)

我现在没有Oracle可用来验证这是完全正确的,所以请提前道歉。您可能需要调整版本号或公钥令牌等。

<configuration
  <system.data>
    <DbProviderFactories>
      <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>

上述配置会将托管Oracle驱动程序注册为提供程序,并应解决您的问题。无需安装完整的Oracle客户端,因为托管驱动程序已完全包含在内。 32位和64位并不重要,因为它总是在托管代码中。

请注意,托管驱动程序为Database First使用的Visual Studio中的各种设计人员执行安装工具。您需要完整的Oracle客户端。如果你正在做Code First,你不必担心它。