c# - .NET 4.6 Oracle.ManagedDataAccess 要求

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

让 .NET 4.6 应用程序与 Oracle 一起工作的最低要求到底是什么?

我们已经在使用 Oracle.ManagedDataAccess 客户端。我们使用 Entity Framework 和数据集(TableAdapters,...)进行数据访问。

目前,我们总是为大约 1.2 GB 的应用程序安装“完整的”Oracle Administrator 客户端,但是要使我们的应用程序与 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 位应用程序一起工作,反之亦然?

最佳答案

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

<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,则无需担心。

关于c# - .NET 4.6 Oracle.ManagedDataAccess 要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43054955/

相关文章:

c# - RichTextBox 选择突出显示

c# - 使用 WinSCP .NET 程序集从 FTP 下载文件的代码无法连接,但我可以在 WinSCP GUI 中连接

visual-studio - Visual Studio 2015 目标框架 "dotnet"与 "net452"

C# - 任何用于覆盖 "Equals"的代码优化技术?

c# - 只初始化一次异步模式

.net - IIS 无法连接到 LocalDB

c# - VS2015升级后的垃圾回收和Parallel.ForEach问题

c# - WCF SslStreamSecurity DNS 身份检查仅针对 4.6 框架失败

c# - 在 C# 中的字典 <int, string> 中添加所有键

C# WPF Combobox 下拉列表到多列