Entity Framework With Oracle(转)
虽然EF6都快要出来了,但是对于Oracle数据库,仍然只能用DB first和Model First来编程,不能用Code First真是一个很大的遗憾啊。
好了,废话少说,我们来看看EF中是如何用DB first和Model First来对Oracle编程的。
首先我们要下载ODP.NET这个数据驱动程序,下载链接:http://www.oracle.com/technetwork/topics/dotnet/index-085163.html
安装成功后,我们在VS连接Oracle数据库时就可以选择ODP.NET了,如图:

Model First
模型优先是先建立数据模型,然后再根据模型生成相应的数据库脚本,然后再根据脚本生成数据库。
在项目中新增一个ADO.NET实体模型:OracleModel.edmx,选择“空模型”,再新新建两个实体:Destination与Lodging,如图:

为了看清这两个模型中属性的数据类型,我把他们生成的类也贴出来一下:
实体模型的空白处,右键-属性,在打开的OracleModel模型属性窗口,设置一些属性,将DDL生成模板改成:SSDLToOracle.tt (VS),数据库架构名称改成:GYOUNG(这是我自己测试的Oracle数据库的用户名,大家可根据自己的更改),数据库生成工作流改成:Generate Oracle Via T4 (TPT).xaml (VS)

为了让EF更好的明白.NET中的数据类型与Oracle中数据类型间的对应关系。我们可以将下面的配置文件加到app.config中。

<oracle.dataaccess.client>
<settings>
<add name="bool" value="edmmapping number(1,0)" />
<add name="byte" value="edmmapping number(3,0)" />
<add name="int16" value="edmmapping number(4,0)" />
<add name="int32" value="edmmapping number(9,0)" />
<add name="int64" value="edmmapping number(18,0)" />
</settings>
</oracle.dataaccess.client>

现在我们就可以生成数据库的相应脚本了。
在空白处右键,选择“根据模型生成数据库”

然后建立好数据连接,如图:

点击下一步,然后就会生成相应的数据脚本。

我们只要将脚本到数据库中执行一下就可以生成相应的表了。分析一下生成的SQL语句,有主键,外键,但并没有为主键设置自增长。Oracle设置自增长也是一个很蛋疼的问题,要通过设置相应的Sequences和Triggers来实现,习惯了SQL SERVER的IDENTITY,对于这个还真不爽。这里我们不管它,就自己插入主键好了。下面是测试代码:
通过VS连接Oracle可以看到数据插入成功。


DB First
DB First顾名思义就是在先建好数据库,再进行编程。我们新建一个项目,就以刚刚生成的那再张表来编程。
在新建项目中添加一个“ADO.NET 实体数据模型”:DBModel.edmx,选择“从数据库生成”

设置好连接串

选择表

点击完成,就会生成相应的模型。

我们来检索一下刚刚插入的数据。
结果如图。

PS:在DB First模式中,更要将Model First中所说的映射配置文件加入App.config中,不然很多数据类型映射会出错。
伪Code First
见我的另一篇博客:Entity Framework Code First在Oracle下的伪实现
==============================================
转自:http://www.cnblogs.com/Gyoung/archive/2013/02/04/2881747.html
Entity Framework With Oracle(转)的更多相关文章
- [VSTS]让ADO.NET Entity Framework支持Oracle数据库(转载)
近期由于项目所需不得不研究Oracle数据库,回想上一次用Oracle还是07年的事情,实习时候做华晨宝马的项目简单接触了Oracle.这次的项目需要基于.NET平台,我个人的习惯是能用微软自带的就不 ...
- 使用entity framework开发oracle
A.vs2010 SP1 B.ODAC(http://www.oracle.com/technetwork/database/windows/downloads/index-101290.html) ...
- 让ADO.NET Entity Framework支持Oracle数据库
Oracle最近发布了 Oracle Data Access Component(ODAC)11. 2 Rel 4,其中增加了对 Entity Framework 4.1 和4.2的支持.这让 .NE ...
- Entity Framework 与ORACLE ODP.Net 在vs2010下的稀奇古怪的问题
不说废话 1.在vs2010数据源中看不到oracle odp.net 数据源,vs2008下可以看到,通过oraprocfg配置多次,重启多次,还是看不到,machine.config里面配置也正常 ...
- entity framework 连接 oracle 发布后出现的问题(Unable to find the requested .Net Framework Data Provider)
用entity framework 搭建的一个windows 程序,在vs中用oracle 的ODT 工具连接oracle数据库,昨天发布后出现下面一个错误, System.ArgumentExcep ...
- ODAC的安装以及Entity Framework for Oracle 基本配置
1.安装ODAC 根据自己操作系统x86,x64来判断下载的ODAC版本 http://www.oracle.com/technetwork/database/windows/downloads/ut ...
- Entity Framework With Oracle
参考页面: http://www.yuanjiaocheng.net/Entity/first.html http://www.yuanjiaocheng.net/Entity/jieshao.htm ...
- .NET Entity Framework (with Oracle ODP.NET) -Code First
上一篇文章介绍了.NET Entity Framework ,并演示了Model First模式,本文将继续讨论 Code First 模式的实现. 一.摘要 1.目标 本文验证了通过Oracle D ...
- .NET Entity Framework (with Oracle ODP.NET)
一.前言 1.Entity Framework是什么? Entity Framework是微软对ORM框架的实现.类似的实现也有其它方式,如DevExpress 的XPO(eXpress Persis ...
随机推荐
- break、continue、return之间的区别与联系
今天在部署程序的时候,监控日志发现这个问题了.return的问题就这么总结哈. 在软件开发过程中,逻辑清晰是非常之重要的. 代码的规范也是非常重要的.往往细节决定成败.在编写代码的时候,一定要理解语言 ...
- 改变PS1的颜色
我们能够通过配置PS1变量使提示符成为彩色.在PS1中配置字符序列颜色的格式为: \[\e[F;Bm\] 基本上是夹在 "\e["(转义开方括号)和 &qu ...
- 百度地图sdk问题 error inflating class com.baidu.mapapi.map.mapview
最近在封装开发中,有机会遇到问题还是记录下吧 但是其实都是一个原因 就是 初始化 在MyAplication onCreate()中加入 SDKInitializer.initialize(get ...
- cocos2dx-3.x物理引擎Box2D介绍
理引擎 Cocos2d-x引擎内置了两种物理引擎,它们分别是Box2D和Chipmunk,都是非常优秀的2D物理引擎,而且x引擎将它们都内置在SDK中.Box2D使用较为广泛,在这里选择Box2D来进 ...
- OracleServiceORCL这个服务竟然不见了
OracleServiceORCL这个服务竟然不见了,后数据库连接不成功,晕死,以前使用数据库还能看到,现在竟然不见了?Why?我猜测原因有二: ①:电脑已经装了Oracle数据库后又装了MySql数 ...
- Redis单机主从高可用性优化
版权声明:本文由陈龙原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/127 来源:腾云阁 https://www.qclou ...
- CentOS下PostgreSQL的安装与配置
一.CentOS下PostgreSQL的yum安装: #安装yum源,默认源存在对版本的支持不好,下载不到等等问题. yum install http://yum.postgresql.org/9.5 ...
- gradle多项目构建及依赖
上项目结构图: idea里面一个project其实相当于eclipse的一个workspace,这样一来就很好理解了,我们新建了两个module,相当于eclipse的两个项目工程 主要看配置:bui ...
- js数组转成对象
$scope.addalerts = []; $scope.addalertsString = JSON.stringify($scope.addalerts); 全部教程http://each.si ...
- MP3 ID3信息编辑器(附源码)
练习WPF时写的编辑MP3 ID3信息的小工具,方便对歌曲的统一管理,同时增加了调用豆瓣音乐API获取专辑信息的功能:1.主界面: 2.没有ID3 信息的MP3歌曲: 3.点击自动获取,从豆瓣音乐获取 ...