如何在VS2017中为Entity Framework添加Oracle提供程序?

时间:2017-08-30 00:58:57

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

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

在Server Explorer中有一个Oracle提供程序,但它被声明为已弃用: enter image description here

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

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

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

请帮助我,我不想再次在代码中编写纯SQL!感谢。

5 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

还有一些额外的内容:

  • 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

答案 2 :(得分:1)

我通过安装Oracle Developer Tools for Visual Studio 2017

解决了这个问题

答案 3 :(得分:0)

我讨厌山姆问题,但在这里找到了解决方案:

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

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

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

最诚挚的问候,Par

答案 4 :(得分:0)

我面临着同样的问题。首先确保您为Visual Studio 2017安装了odac 只需点击此链接,然后按照以下步骤操作即可: https://www.oracle.com/technetwork/topics/dotnet/downloads/odacmsidownloadvs2017-3806459.html 卸载以前的odac版本。 希望从链接安装后,您将获得所有东西。