让Vs2013 完美支持EF6.1 Code First with Oracle
本文是对下文的补充,切勿以为我是全盘复制哦
连接:
http://www.cnblogs.com/wlflovenet/p/4187455.html
Entity Framework6 with Oracle(可实现code first)
本人项目代码版本
VS2013 Update 4
Oracle 服务端是Oracle11gr2,而后各种Oracle服务端,还有各种客户端,具体原因不多述,导致本人开发的程序,全部必须使用ODP.NET, Managed Driver
ODP.NET, Managed Driver 分为两种,一种是自带在ODP.Net安装包(此安装包只分32位安装版本和64位 XCOPY版本),一种是只有9M的zip包
微软的Nuget上不是最新的,目前支持EntityFramework (6.0.0.0)的只 有Oracle官网上的ODTwithODAC121021.zip,ODP.NET_Managed121020.zip,两个版本
省略千字,进入正题,如果出现下面这个信息(相信很多人都和我一样被微软给迷惑了)
其实是我们基础学的好不好,此处上文提到园友其实已经给出了解决办法
那就是修改Web.config;
把
改为
<entityFramework> <defaultConnectionFactory type="Oracle.ManagedDataAccess.EntityFramework.OracleConnectionFactory, Oracle.ManagedDataAccess.EntityFramework, Version=6.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" /> <providers> <provider invariantName="Oracle.ManagedDataAccess.Client" type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" /> </providers> </entityFramework>
记得
<section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
这句话要加到
<configSections> </configSections> 里
如果没有默认的连接对象,自己手写个即可
就是 <connectionStrings>
</connectionStrings>里加入一个你自己默认要用的连接字符串即可,完成生成之后,这个删除都行的
到此步,基本上都能用,我就可耻的隐匿了,要感谢wlf提供了如此好的文章,我只是一个搬运工,谢谢残冰给与的ef使用指导,感谢死胖子你那脑洞大开的ef bug论
PS:如果发现我文章中的Oracle.ManagedDataAccess版本和我上面提到的文章作者说的版本不一致,那是因为我这个是最新的,最新版本是4.121.2.0
我是64位的win8.1 装的ODP.Net(这玩意只有32位的),安装之后,VS2013和VS2010里就会自带有Oracle.ManagedDataAccess。
Oracle官网地址
http://www.oracle.com/technetwork/database/windows/downloads/utilsoft-087491.html