VS2017中EF数据源及ADO.NET数据模型创建时Oracle不显示求助
VS2017下EF数据库优先模式找不到Oracle的解决方案
我之前也碰到过一模一样的问题,折腾了好一阵才搞定,给你整理了几个亲测有效的解决方案,按顺序试下来应该能解决:
1. 确认ODAC与ODT版本和VS2017兼容
首先得确保你安装的**Oracle Developer Tools(ODT)**版本是专门针对VS2017的,推荐版本是12.2.0.1.0及以上:
- 打开VS2017,点击顶部菜单的
工具->扩展和更新,在「已安装」列表里搜索“Oracle Developer Tools”,查看版本是否符合要求。 - 如果版本不匹配,先卸载现有ODAC/ODT,去Oracle官网下载对应VS2017的版本(注意区分x86/x64,和你的VS位数一致),安装时务必勾选「Oracle Developer Tools for Visual Studio」选项。

2. 修复ODT的安装
有时候安装过程中可能出现注册不完整的情况,试试修复:
- 打开「控制面板」->「程序和功能」,找到「Oracle Developer Tools for Visual Studio 2017」,右键选择「更改」,然后选「修复」,跟着向导完成修复操作。
- 修复完成后重启VS2017,再尝试创建ADO.NET数据模型。

3. 手动注册ODT到VS
如果修复没用,试试手动执行注册命令:
- 以管理员身份打开命令提示符(CMD),导航到ODT的默认安装目录:
C:\Program Files (x86)\Oracle Developer Tools for VS2017\odt\bin - 运行以下命令:
DevToolsConfig.exe /setup - 等待命令执行完毕后,重启VS2017。
4. 匹配NuGet包与ODT版本
你安装的Oracle Managed Data Access Entity Framework NuGet包版本要和ODT版本尽量保持一致,避免版本不兼容:
- 右键项目 ->「管理NuGet程序包」,找到
Oracle.ManagedDataAccess.EntityFramework,如果版本和ODT差异较大,先卸载再重新安装对应版本。

5. 手动配置EF提供程序
如果以上步骤都无效,手动在项目配置文件里添加Oracle EF提供程序:
- 打开项目的
App.config或Web.config,找到<entityFramework>节点,添加如下配置代码:
<entityFramework> <providers> <provider invariantName="Oracle.ManagedDataAccess.Client" type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework" /> </providers> </entityFramework> <system.data> <DbProviderFactories> <remove invariant="Oracle.ManagedDataAccess.Client" /> <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" /> </DbProviderFactories> </system.data>
- 保存配置后重启VS,再尝试创建数据模型。
6. 更新VS2017到最新版本
旧版本的VS2017可能存在兼容性问题,确保你的VS是最新的:
- 打开VS2017,点击「帮助」->「检查更新」,安装所有可用更新后重启VS。
试完这些步骤,应该就能在选择数据库连接时看到Oracle选项,EF数据源列表里也会出现Oracle了。
内容的提问来源于stack exchange,提问作者cod3r
相关产品推荐
相关产品推荐

