【问题标题】:How to add Oracle provider in VS2017 for Entity Framework?如何在 VS2017 中为实体框架添加 Oracle 提供程序?
【发布时间】:2018-02-07 13:46:38
【问题描述】:

我想连接到数据库(Oracle 12c)以生成 ADO.NET 模型,Code First From Database。我已经安装了ODAC for VS,但在实体数据模型向导中仍然没有连接 Oracle DB 的选项:

在服务器资源管理器中有一个 Oracle 提供程序,但它被声明为已弃用:

我还尝试安装以下 4 个 Nuget 包,但在实体数据模型向导中仍然没有 Oracle 提供程序:

我怀疑 VS2017(Community) 没有查看我为它使用的提供程序列表安装 ODAC 的位置,但我无法确定它存储此配置的位置。

我有什么遗漏吗?或者还有其他方法可以使用 EF for Oracle?例如。回退到 VS2015,手动创建实体模型(我该怎么做?)等等。

请帮助我,我不想再用代码编写普通的 SQL!谢谢。

【问题讨论】:

标签: c# oracle entity-framework visual-studio-2017


【解决方案1】:

我通过安装Oracle Developer Tools for Visual Studio 2017解决了这个问题

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。首先确保您为 Visual Studio 2017 安装了 odac 只需访问此链接并遵循: https://www.oracle.com/technetwork/topics/dotnet/downloads/odacmsidownloadvs2017-3806459.html 卸载以前的 odac 版本。 希望如果您从链接安装,您将得到所有东西。

    【讨论】:

      【解决方案3】:

      还有一些额外的东西:

      • Nuget 包管理器建议 Oracle.ManagedDataAccess.EntityFramework 18.3.0

      这不适用于最新的 ODP。 Nuget 包版本应与 ODP 版本匹配:

      • ODP 12.2.0.1.1
      • Nuget Oracle.ManagedDataAccess.EntityFramework 12.2.1100

      如果不是,实体数据模型向导将崩溃而不会在

      中留下任何痕迹

      C:\Users\YOURUSER\AppData\Roaming\Microsoft\VisualStudio

      【讨论】:

      • 非常感谢。你的评论最终对我有用。直到现在,这一直是一场噩梦。你提到的版本是绝对正确的。我从oracle.com/database/technologies/… 下载了 Oracle Visual Studio 工具版本 12.2.0.1.1 我安装了 NuGet 包 12.2.1100 并处理了依赖项。谢谢!!!!!!!!!!!!!
      • 如果允许,我会根据今天经历的恶化情况对这个答案投票一百次。
      【解决方案4】:

      我遇到了 sam 问题,但在这里找到了解决方案:

      不要使用 .NET 驱动程序。使用 ODP.NET 驱动程序(托管或非托管)。

      http://www.oracle.com/technetwork/topics/dotnet/whatsnew/vs2012welcome-1835382.html

      从 Visual Studio 中的服务器资源管理器创建一个新连接,并使用这些图像作为指南:更改数据源,确保选择您的 .NET 应用程序将使用的 ODP.NET 风格(托管或非托管) - 然后连接到甲骨文。在 Oracle 连接对话框中,如果您有连接别名,请选择“TNS”的“连接类型”,然后从“数据源名称”下拉列表中选择别名。如果您没有连接别名,您可以选择“EZ Connect”连接类型,然后为您希望连接的数据库提供主机、端口和服务名称。

      最好的问候,帕

      【讨论】:

        【解决方案5】:

        我有同样的错误。我通过从 Visual 2015 添加 Oracle 数据库来解决这个问题。然后通过 Visual 2017 打开项目。它完成了。我已经阅读了很多关于这个的话题。他们现在说,Oracle 还不支持在实体数据模型向导中连接 Oracle DB,您可以在此处看到: https://community.oracle.com/thread/4024914

        【讨论】:

        • 我最终这样做了,一切正常。我希望有一个“真正的”解决方案,但一个有效的黑客总比没有好。谢谢。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-23
        • 2017-04-26
        • 1970-01-01
        • 1970-01-01
        • 2015-07-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多