Entity Framework 6 Database-first连接Oracle11g
Entity Framework 6 Database-first连接Oracle11g(图文细说)
本文发布地址:http://www.cnblogs.com/likeli/p/5577264.html
目前Oracle已经推出了托管的ODP.NET驱动来连接Oracle数据库。已经支持Code First,那么到目前位置,EF的三种模式都是可以操作Oracle数据库的了。
相关文档:
EF6 Code First连接Oracle11g的Oracle官方资料:http://docs.oracle.com/cd/E56485_01/win.121/e55744/entityCodeFirst.htm#ODPNT8309
database-first配置文档(非官方):https://csharp.today/entity-framework-6-database-first-with-oracle/
集成Visual Studio 2015的ODP.NET驱动官方下载:http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html
正文:
好吧,我们开始来一个实际的例子。
首先创建一个基于.net 4.5的MVC demo。名字叫做EntityFrameworkSixForOracle的工程。如下


创建完成后,我们打开Nuget包管理器,安装一些包。
在Nuget包管理器中搜索 ManagedDataAccess

这里先安装第二个,也就是oracle.ManagedDataAccess,然后再安装oracle.ManagedDataAccess.EntityFramework。
原因是因为安装oracle.ManagedDataAccess.EntityFramework后自动安装oracle.ManagedDataAccess,但是oracle.ManagedDataAccess的版本较低,好像这两个不同步,导致之后出现未知错误(仅怀疑,未验证)。
然后将Entity Framework更新到最新版。
好的,到这步,引用工作就完成了。接下来配置DataBase-First。
在项目中创建一个文件夹Db,然后添加新项=》数据=》ADO.NET实体数据模型。




点击上面的更改,然后可以看到目前所有的数据源,一般情况下,只有前面的两项,第三项Oracle数据库是没有的。我们需要自行安装Oracle官方提供的驱动程序。
我这里提供官方下载页面,这需要有Oracle的帐号,另外也下载回来测试成功后,将安装包上传到CSDN,大家直接下载安装即可。
官方下载页:http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html
下载回来的是一个58.69MB的安装包,默认安装就可以了。

上面Oracle官方说明的截图已经很明白了,这是一个集成于Visual Studio 2015的Oracle驱动工具。另外,官方还提供了VS2013的集成工具。
安装完成后,重启VS,重复上面的步骤,会发现已经有了Oracle数据库 源这一项。好了,问题解决,我们继续。
选择Oracle数据库这一项,出现以下界面:

这里需要说明一下的,当前正在使用的Tnsnames.ora,若是我们配置的监听文件不在上面显示的位置,则点击搜索,去自动查找,选择位置和别名后,点击复制,就可以将自己Tns的相关配置,复制到驱动程序的Tns里面了,再或者,直接用我们自己的Tns文件替换掉默认驱动程序的Tns也是可以的。
以上配置完成后,点击测试,即可测试连接成功。这一步若是有什么不懂的地方,请留言。
弄好之后,确定保存。


然后选择需要导入的表,或者视图。最后单击完成即可。

如此,EF6 Database-First模式连接Oracle11g的实例就完成了 。
添加一个控制器,写一个查询测试一下。

查询前这个表的前100条看看。

好的,数据出来了,成功!
PS:使用oracle.ManagedDataAccess驱动的话,发布的应用不用再在本地安装Oracle客户端。
常见错误汇总(随时更新):
1、在从数据库更新模型的时候,提示模型已生成,但出现警告或错误。
这是因为数据建表不规范,连最基本的主键都没有。
下一章说 EF6 Code-first连接Oracle11g
Entity Framework 6 Database-first连接Oracle11g的更多相关文章
- 《ASP.NET MVC4 WEB编程》学习笔记------Entity Framework的Database First、Model First和Code Only三种开发模式
作者:张博出处:http://yilin.cnblogs.com Entity Framework支持Database First.Model First和Code Only三种开发模式,各模式的开发 ...
- Entity Framework 之Database first(数据库优先)&Model First(模型优先)
一.什么是Entity Framework 1.1 实体框架(EF)是一个对象关系映射器,使.NET开发人员使用特定于域的对象与关系数据.它消除了需要开发人员通常需要编写的大部分数据访问代码.简化了原 ...
- C# ORM—Entity Framework 之Database first(数据库优先)&Model First(模型优先)(一)
一.什么是Entity Framework 1.1 实体框架(EF)是一个对象关系映射器,使.NET开发人员使用特定于域的对象与关系数据.它消除了需要开发人员通常需要编写的大部分数据访问代码.简化了原 ...
- 转:Entity FrameWork利用Database.SqlQuery<T>执行存储过程并返回参数
public IEnumerable<Statistic> GetStatistics(IEnumerable<Guid> itemIds) { var ctx = new D ...
- [转]Entity FrameWork利用Database.SqlQuery<T>执行存储过程并返回参数
本文转自:http://www.cnblogs.com/xchit/p/3334782.html 目前,EF对存储过程的支持并不完善.存在以下问题: EF不支持存储过程返回多表联合查询的 ...
- Entity FrameWork利用Database.SqlQuery<T>执行存储过程并返回参数
目前,EF对存储过程的支持并不完善.存在以下问题: EF不支持存储过程返回多表联合查询的结果集. EF仅支持返回返回某个表的全部字段,以便转换成对应的实体.无法支持返回部分字段的情况. 虽然可以正常导 ...
- Entity Framework 利用 Database.SqlQuery<T> 执行存储过程,并返回Output参数值
做个记录: var pCount = this._dataProvider.GetParameter(); pCount.ParameterName = "totalCount"; ...
- mvc+entity framework database first,生成的model每次更新一个表会更新所有的model
在使用Entity Framework 的Database frist或model first时,直接加attribute到modle类上是太现实也不合理的,因为model类是自动生成的,重新生成后会 ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库
在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...
- Entity Framework Code First数据库连接
1. 安装Entity Framework 使用NuGet安装Entity Framework程序包:工具->库程序包管理器->程序包管理器控制台,执行以下语句: PM> Insta ...
随机推荐
- jexus /Tinyfox Owin适配器
public class Adapter { static Func<IDictionary<string, object>, Task> _owinApp; /// < ...
- 锁(MySQL篇)—之MyISAM表锁
前言 锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,除传统的计算资源(如CPU.RAM.I/O等)的争用以外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性.有效性是 ...
- qemu 源码调试
1:下载最新的QEMU源码 git clone https://github.com/qemu/qemu.git 2:对qemu进行编译 ./configure --prefix=/usr --lib ...
- RESTful 接口调试分享利器 restc
这个工具来自于https://elemefe.github.io/restc/ 这里对Abp进行了一次封装 1.在项目中添加nuget包 Abp.Web.Api.Restc 2.在项目Abp模块的D ...
- Apache服务器安装过程及问题的解决(for windows system32bit)
在使用Hbuilder设计网站时,在制作本站搜索时,用到了Php文件,而Hbuilder的内置web服务器不支持php的解析, 所以需要安装配置外部服务器,有多个选择,我安装的apache服务器,并遇 ...
- NSSearchPathForDirectoriesInDomains函数详解
NSSearchPathForDirectoriesInDomains函数详解 #import "NSString+FilePath.h" @implementation ...
- 一张图告诉你,只会HTML还不够!
会了HTML和HTML5语法,你就真的会了HTML吗,来看这张图!是这本<超实用的HTML代码段>入门实例书的导览!熊孩子们,赶紧学习去吧! 如果一半以上的你都不会,必须看这本书,阿里一线 ...
- VSTO PowerPoint 代码删除Shape后再恢复出现无法再次获取的问题
做PowerPoint的VSTO插件项目,遇到个很奇怪的问题,当代码执行删除某些Shape时,没问题,但是操作Undo也就是恢复后,无法再次获取到之前删除的对象,这种情况只在Office2007中出现 ...
- webstorm ES6 转 ES5
一句话总结:用WebStorm自带的File Watcher功能+Babel实现自动转换ECMAScript 6代码为ES5代码 1. 新建一个Empty Project,然后在src目录下新建了一个 ...
- zepto返回顶部动画
点击返回顶部 function goTop(acceleration, time) { acceleration = acceleration || 0.1; time = time || 16; v ...