实体数据模型向导崩溃与 Oracle 连接

Entity Data Model Wizard Crash with Oracle Connection

提问人:gilpach 提问时间:7/13/2017 更新时间:11/6/2019 访问量:10065

问:

我无法让 VS 2015 为 Oracle 连接创建我的 EDMX 文件。

我正在使用 Visual Studio 2015 Update 3 我已经安装了 Oracle 开发人员工具 12.1.0.2.4 我已安装 Oracle Data Access,\ client[user]\product\12.1.0\client\odp.net\bin 下存在以下 DLL 2.x\Oracle.DataAccess.dll版本:2.121.2.0 ODAC 第 4 版 4\Oracle.DataAccess.dll版本:4.121.2.0 ODAC 第 4 版 我正在使用以下程序集 Oracle.ManagedDataAccess 版本:4.122.1.0 Oracle.ManagedDataAccess.EntityFramework 版本:6.122.1.0 * 我相信这两个都是版本 12.2.1100,基于它们驻留在 packages 文件夹中的文件夹。

服务器资源管理器中未定义任何连接

我的步骤如下:

  1. 在“解决方案资源管理器”中,右键单击项目,然后选择“添加”|”“新物品......”
  2. 选择数据 |ADO.NET 实体数据模型 |加
  3. 从“数据库”|”按下一步

在实体数据模型向导中:

  1. 按新建连接...(我收到一条警告“无法找到默认的 tnsnames.ora 文件”。我忽略并按“确定”
  2. 将数据源设置为“Oracle Database (ODP.NET, Managed Driver)”,我输入凭据并指定另一个 连接参数,然后按“测试连接”,成功。
  3. 我按“确定”,然后转到“实体数据模型向导”中的下一页
  4. 我在连接字符串中包含敏感数据,然后按下一步...。

WIZARD SHUTS DOWN (crashes) - 未创建 EDMX

任何帮助我解决此问题的帮助将不胜感激。

TIA - 泽维尔

asp.net Oracle Entity-Framework Visual-Studio-2015

评论

1赞 m.edmondson 7/22/2017
我有同样的问题,我会悬赏,看看我们是否能到达任何地方。您是否刚刚安装了 12.1.0.2.4,因为 12.1.0.2.4 安装程序似乎什么也没做?
0赞 Marcus Höglund 7/22/2017
在我过去,我遇到了一些类似的问题,解决方案是降级EF版本。我会尝试使用 EF 5 或 6.0 来测试 ora 设置作为第一步

答:

12赞 Hong Van Vit 7/22/2017 #1

我有同样的错误。我按照以下步骤成功修复了它:

在项目中,右键单击“->”在“浏览”选项卡上选择“管理 NuGet 包”,输入 oracle。您将看到 Oracle.ManagedDataAccess.EntityFramework。选择已安装的 oracle 版本。这应该是 12.1.2400。安装它,你就完成了

0赞 J. Chomel 7/24/2017 #2

看起来这里有人有类似的问题:他以某种方式添加了更改实现。

[在这种情况下],视图(有效且有效)导致了崩溃。在不使用该视图的情况下更改实现后,它(或多或少)有效。

我的建议是你一步一步地进行,第一次测试向导时只导入一个对象,然后只导入简单的表,然后添加过程、视图......

24赞 m.edmondson 7/24/2017 #3

感谢 @Hong-vit 为我指明了正确的方向。我找到了答案。

当您访问 ODAC 的下载页面时,您会选择版本号。

就我而言,前两名是:

  • ODAC 12.2c 第 1 版和适用于 Visual Studio 的 Oracle 开发人员工具 (12.2.0.1.0)
  • ODAC 12c 第 4 版和适用于 Visual Studio 的 Oracle 开发人员工具 (12.1.0.2.4)

对我来说,顶部不会安装。它会在安装过程中被切断(感谢 Oracle!),所以我选择了第二个 (12.1.0.2.4)。

这意味着,当我安装 Oracle.ManagedDataAccess 和 Oracle.ManagedDataAccess.EntityFramework 时,我必须选择正确的版本

不适合我:

enter image description here

我需要的那个

enter image description here

正如你所看到的,版本号(几乎!)匹配:

  • ODAC 12.2.0.1.0 = Oracle.ManagedDataAccess 12.2.1100
  • ODAC 12.1.0.2.4 = Oracle.ManagedDataAccess 12.1.24160719 (耶!

我相信这是代表预言机的失败,因为尽管它们包含在一个没有特色的长自述文件中,但它并没有明确说明。此外,版本号也不完全相同......但这是博客的咆哮。

评论

0赞 MichaelHuelsen 9/19/2018
这终于也解决了我的问题。我从 EF 6.2 abd Oracle.ManagedDataAccess v18.* 开始。但是,本地 ODT 以 32 位版本 12.2.* 安装。因此,我将其降级到相应的版本,实体模型向导按预期工作。
0赞 EspressoBeans 7/13/2019
此解决方案适用于匹配版本号。但是,就我而言,VS2017 的 ODT(Oracle 开发人员工具)的较新版本以及必须匹配的 Oracle.managedDataAcesss 是 12.2.1100。
3赞 chakeda 9/1/2018 #4

我遇到了同样的问题 - 我希望我能帮助那些不幸地完成连接 Oracle 和 Visual Studio 的 Google 员工。

我按照步骤操作,但仍然崩溃 - 因为我使用的是 VS2017(我知道问题被标记为 VS2015)。您需要安装 VS2017 ODAC 客户端。值得庆幸的是,当您开始安装时,它实际上会做一些事情。已接受答案链接中的安装程序仅适用于 VS2015。

ODP.NET 的最新版本(截至撰写本文时)为 18.3,可通过 NuGet () 安装。按照 Oracle 网站上的以下步骤操作,您将完成设置。Oracle.ManagedDataAccess.EntityFramework

...或者你是这么想的。我遇到了与此堆栈溢出问题相同的错误,它不会通过实体数据模型向导。

我应用了所选答案中的每个配置,但它仍然不起作用。当我将我的版本从 18.3.0 降级到 12.2.1100 时,我终于可以创建我的模型了!Oracle.ManagedDataAccess.EntityFramework

1赞 dvque 11/6/2019 #5

当我尝试将 Oracle Entity Framework 与 Visual Studio 2017 连接时,我遇到了同样的问题。

安装后,unistall 多次不同的版本。更适合我的构建是:

适用于 Visual Studio 2017 的 Oracle 开发人员工具 (ODTv2017) v12.2.1200

Oracle.ManagedDataAccess 12.2.1100 版

Oracle.ManagedDataAccess.EntityFramework v12.2.20190115

EntityFramework .NET v6.3.0

我认为在 Oracle 软件包中拥有类似的版本对于良好的性能非常重要。

评论

1赞 nandox 2/10/2023
谢谢你的回答。这对我有很大帮助。就我而言,这个包工作没有错误: - EntityFramework 6.1.3 - Oracle.ManagedDataAcces 12.2.20230118 - Oracle.ManagedDataAcces.EntityFramework 12.2.20230118