[Entity Framework使用随笔]实体数据模型向导闪退的原因分析
开发环境:VS2015+EF6.0+Oracle 11g
在项目中一直都可以用ADO.NET实体数据模型生成EF CodeFirst代码,但是最近在实体数据模型向导界面(如下图所示),点击下一步时,窗口就闪退了。
但是用VS2015的服务器连接工具却可以正常打开数据库。
因为没有任何提示信息,加上天天开会,所以一直没有时间处理。今天百度了一圈,发现也有不少人也遇到相同的问题,其中有人提到是数据库驱动程序的问题,突然想起之前曾经重装过Oracle Developer Tools for Visual Studio,它集成了“ODP.NET托管驱动程序”。在VS中需要通过该驱动程序连接到Oracle数据库。
在VS2015中连接Oracle 11g数据库需要另外安装专用的ODP.NET托管驱动程序,如下图所示:
Oracle Developer Tools for Visual Studio的下载路径为:
http://www.oracle.com/technetwork/topics/dotnet/downloads/odacmsidownload-2745497.html
该页面提供了两个版本的ODT,分别是:
Oracle Developer Tools for Visual Studio 2015 (12.2.0.1.0)
Oracle Developer Tools for Visual Studio 2015 (12.1.0.2.4)
安装完成后,在控制面板的已安装程序中可以查看它的版本号。
下面是最关键的地方了。在项目中如果启用EF实体框架,还需要使用Nuget安装EF 6.0和Oracle.ManagedDataAccess。
注意:Oracle.ManagedDataAccess有多个版本,在安装的时候,选择的版本必须要和前面安装的ODT的版本保持一致,如果不一样,那么就会出现上面闪退的情况。