Entity Framework6 with Visual Studio 2013 update3 for Oracle 11g
2014年7月的时候,写了一篇关于EF5 with visual studio 2010 for oracle 11g的博文 原文地址 :http://www.cnblogs.com/HouZhiHouJueBlogs/p/3844028.html,现在oracle已经支持到EF6了。技术更新快,有些细节如不记录下来,很容易被遗忘,故有此篇博文。
Oracle 对.net支持的一些基础知识了解介绍
1.早年的时候,微软自己做的有 System.Data.OracleClient。 现在已经成了过期类了。性能等都不是很好。
2.Oracle 官方出的odp.net Oracle.DataAccess.dll(非托管版本) 还要分32/64位。而且很麻烦的是 部署的时候 需要装客户端环境。非常繁琐。
3.Oracle 官方近年新出的 Oracle.ManagedDataAccess.dll 这个非常给力 不再区分32/64位了。 而且不需要客户端再安装东西了。性能也得到了提高。不管是用ado.net或者其他ORM框架都建议使用此版本dll。这次我们的EF6 也会依据此dll进行开发。
官方下载地址是这个 一定要去官方下载最新的 才能支持EF6 我从nuget上下的版本较低 不支持。。
http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html (当时下载的版本为4.121.2.0)。下载好后,部署的方式十分简单,进入cmd窗口执行installxx的命令即可,后面会提示参数。
下载好后 从这个目录下 odp.net\managed\common 拿出Oracle.ManagedDataAccess.dll 和 Oracle.ManagedDataAccess.EntityFramework.dll ,已备开发使用。
使用codefirst需要有相关配置,如下:
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</configSections> <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> <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, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>
</system.data> <connectionStrings> <add name="OraString" connectionString="Data Source= (DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = *****)(PORT = ))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
);User ID=*****;Password=*****;Persist Security Info=True" providerName="Oracle.ManagedDataAccess.Client" /> </connectionStrings>
这里还有个注意事项,因为有的人以及装了oracle的客户端。这可能会导致一些错误。这里 请注意检查下 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config
下的 machine.config (64位的话 路径是 Framework64,最好都检测下)
machine.config 可以理解为webconfig的父类 所以我们需要检查下里面的内容 是否有:
<section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
上述配置完成之后,EF6即可投入使用。
参考链接:
http://www.cnblogs.com/wlflovenet/p/4187455.html
http://www.cnblogs.com/yzb305070/p/4251036.html
oracle 访问的问题:
http://docs.oracle.com/cd/E56485_01/win.121/e55744/toc.htm
http://docs.oracle.com/cd/E56485_01/win.121/e55744/entityMigrate.htm#BABEHEFE
最新文章
- 一个无限加载瀑布流jquery实现
- MetInfo 5.1 自动化getshell工具
- VS2015下编译64位GDAL总结
- PHP无限极分类,多种方法|很简单,这里说的很详细,其它地方说的很不好懂
- linux下发现可疑用户时处理办法
- Java单例模式——并非看起来那么简单
- Greedy:Stripes(POJ 1826)
- https_request
- [cmd]linux 常用命令
- 射频识别技术漫谈(13)&mdash;&mdash;Mifare S50与S70【worldisng笔记】
- 超人学院Hadoop大数据资源分享
- 百度地图API显示多个标注点,解决提示信息问题以及给标注增加地图旁的文字连接提示的另一种解决办法
- spring mvc 入门示例
- FWT模板
- Python内置函数(36)——reversed
- (译)MySQL 8.0实验室---MySQL中的倒序索引(Descending Indexes)
- MySQL 数据类型对比:char 与 varchar;varchar 与 text;datetime 与 timestamp;blob 与 text;
- BZOJ 1029: [JSOI2007]建筑抢修 优先队列
- hadoop1.0.4运行程序出现“Java heap Space”错误
- 搭建ssm+maven环境遇到的问题