提问人:gilpach 提问时间:7/13/2017 更新时间:11/6/2019 访问量:10065
实体数据模型向导崩溃与 Oracle 连接
Entity Data Model Wizard Crash with Oracle Connection
问:
我无法让 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 文件夹中的文件夹。
服务器资源管理器中未定义任何连接
我的步骤如下:
- 在“解决方案资源管理器”中,右键单击项目,然后选择“添加”|”“新物品......”
- 选择数据 |ADO.NET 实体数据模型 |加
- 从“数据库”|”按下一步
在实体数据模型向导中:
- 按新建连接...(我收到一条警告“无法找到默认的 tnsnames.ora 文件”。我忽略并按“确定”
- 将数据源设置为“Oracle Database (ODP.NET, Managed Driver)”,我输入凭据并指定另一个 连接参数,然后按“测试连接”,成功。
- 我按“确定”,然后转到“实体数据模型向导”中的下一页
- 我在连接字符串中包含敏感数据,然后按下一步...。
WIZARD SHUTS DOWN (crashes) - 未创建 EDMX
任何帮助我解决此问题的帮助将不胜感激。
TIA - 泽维尔
答:
我有同样的错误。我按照以下步骤成功修复了它:
在项目中,右键单击“->”在“浏览”选项卡上选择“管理 NuGet 包”,输入 oracle。您将看到 Oracle.ManagedDataAccess.EntityFramework。选择已安装的 oracle 版本。这应该是 12.1.2400。安装它,你就完成了
看起来这里有人有类似的问题:他以某种方式添加了更改实现。
[在这种情况下],视图(有效且有效)导致了崩溃。在不使用该视图的情况下更改实现后,它(或多或少)有效。
我的建议是你一步一步地进行,第一次测试向导时只导入一个对象,然后只导入简单的表,然后添加过程、视图......
感谢 @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 时,我必须选择正确的版本。
不适合我:
我需要的那个
正如你所看到的,版本号(几乎!)匹配:
- ODAC 12.2.0.1.0 = Oracle.ManagedDataAccess 12.2.1100
- ODAC 12.1.0.2.4 = Oracle.ManagedDataAccess 12.1.24160719 (耶!
我相信这是代表预言机的失败,因为尽管它们包含在一个没有特色的长自述文件中,但它并没有明确说明。此外,版本号也不完全相同......但这是博客的咆哮。
评论
我遇到了同样的问题 - 我希望我能帮助那些不幸地完成连接 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
当我尝试将 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 软件包中拥有类似的版本对于良好的性能非常重要。
评论