Oracle最近发布了 Oracle Data Access Component(ODAC)11. 2 Rel 4,其中增加了对 Entity Framework 4.1 和4.2的支持。这让 .NET 开发者可以使用 Oracle 数据库来应用这种流行的 ORM 工具,并使用 LINQ to Entities 来进行数据访问,而不需要编写 SQL 语句。

  尽管新的提供程序(provider)支持 EF,但它并不支持最新的特性,像在 EF 4.1 中引入的代码先行(Code First)DbContext。另外,除了对 EF 的支持之外,在最新的版本中还引入了多项其它特性;例如,你可以为 Oracle 数据库中的数据编写 WCF 数据服务(WCF Data Services)。你可以从官方文档中了解到所有 ODAC 所支持的功能。

  该提供程序的 beta 测试版本已经发布一段时间了。想要尽快上手的开发者,可以阅读关于应用 Visual Studio Toolset 使用 Oracle 和 EF 的文章,以及简单的教程

  Entity Framework 的设计中有提供程序模型(provider model),从而可以使用第三方数据提供程序。另外还有一个示例提供程序,显示了如何对非 SQL Server 数据库做到这一点。Oracle 现在为 Oracle 数据库实现了这个工具。

  Oracle 并非是唯一拥有支持 EF 提供程序的非 SQL Server 数据库——ADO.NET 提供程序页面列举了所有针对各种数据库的第三方提供程序,它们都支持 Entity Framework。

  查看英文原文:Oracle Provider Gets EF Support

默认情况Visual Studio 2010的.NET项目模板及类型模板中的Entity Framework是不支持Oracle数据库的,找了一圈发现第三方有些插件,但试了一下都不尽如人意,而Oracle官方也有一些工具可以对此做扩展,让Entity Framework支持Oracle数据库,接下来就简单说一下。

首先准备两个东西,都在Oracle官网可以下到:

1. ODAC 11.2 Release 3 (11.2.0.2.1) with Oracle Developer Tools for Visual Studio

下载地址:http://www.oracle.com/technetwork/developer-tools/visual-studio/downloads/index.html

2. Oracle Data Access Components (ODAC) for Microsoft Entity Framework and LINQ to Entities

下载地址:http://www.oracle.com/technetwork/topics/dotnet/downloads/oracleefbeta-302521.html

注意:ODACforEntityFramework不论你的操作系统是32位还是64位,开发人员只装32位,因为VS是32位的程序,这个要切记,装64位的话还是不能用的。

另外,Oracle官网下东西是要注册一个用户的。

安装好环境之后我们就可以使用了:

1. 打开Visual Studio 2010及要使用Entity Framework的项目:

2. 在测试项目上面选择新建项:

3. 选择ADO.NET实体数据模型:

4. 在弹出向导中选择数据库:

5. 在第二步的新建连接中可以看到Oracle选项,如果没有这一项证明上述的工具没装好,再检查一下吧:

5. 选择Oracle数据库后输入数据库配置信息:

6. 测试连接成功后即可确定并完成数据库配置,并保存连接字符串:

7. 选择要生成实体的表:

8. 完成后即可看到与使用SQL Server数据库创建出相同的实体模型:

至此即可开始编写你要的程序,希望上述内容对大家有所帮助,谢谢!

程序员的基础教程:菜鸟程序员

让ADO.NET Entity Framework支持Oracle数据库的更多相关文章

  1. [VSTS]让ADO.NET Entity Framework支持Oracle数据库(转载)

    近期由于项目所需不得不研究Oracle数据库,回想上一次用Oracle还是07年的事情,实习时候做华晨宝马的项目简单接触了Oracle.这次的项目需要基于.NET平台,我个人的习惯是能用微软自带的就不 ...

  2. 让ADO.NET Entity Framework 支持ACCESS数据库

    如写的不好请见谅,本人水平有限. 个人简历及水平:. http://www.cnblogs.com/hackdragon/p/3662599.html 接到一个程序和网页交互的项目,用ADO.NET ...

  3. 让Entity Framework支持MySql数据库(转载)

    转载地址:http://www.cnblogs.com/wintersun/archive/2010/12/12/1903861.html Entity Framework 4.0 也可以支持大名鼎鼎 ...

  4. 用 Entity Framework结合Oracle数据库来开发项目

    项目需要,要使用Oracle 11g数据库.作为不想写SQL的程序员,所以...... 原先想当然的是使用EF+MSSQL的方式来进行配置.吃了哑巴亏.然后谷歌出了一篇好文,沿着这篇文章进行了搭建,I ...

  5. 读书笔记之ado.net entity framework

    提供了对数据访问的一种抽象层,是更加易于以编程的方式来操作及管理数据 有以下几种模式:Model First, Database First, and Code First 现在主要讨论code Fi ...

  6. 使用Entity Framework Core访问数据库(Oracle篇)

    前言 哇..看看时间 真的很久很久没写博客了 将近一年了. 最近一直在忙各种家中事务和公司的新框架  终于抽出时间来更新一波了. 本篇主要讲一下关于Entity Framework Core访问ora ...

  7. ADO.NET Entity Framework

    ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案, 早期被称为 ObjectSpace,现已经包含在 V ...

  8. Entity Framework连接Mysql数据库并生成Model和DAL层

    Entity Framework (EF,ADO.NET Entity Framework)是微软官方提供的.NET平台的ORM框架.相比于LINQ TO SQL,EF框架具有很明显的优势: EF框架 ...

  9. Entity FrameWork(实体框架)是以ADO.NET Entity FrameWork ,简称为EF

    Entity FrameWork(实体框架)是以ADO.NET Entity FrameWork ,简称为EF Entity FrameWork的特点 1.支持多种数据库(MSSQL.Oracle.M ...

随机推荐

  1. Win 10 System Restore Fail 0x80070091

    Question: Below about says it all.  I tried SysRes from two points, both with same failure. System R ...

  2. AXURE插件在 Chrome 浏览器中用不了怎么办?

    使用Chrome浏览器打开axure设计的原型的时候可能无法正常显示,这时Chrome会提示你安装axure rp for Chrome插件.此前,我们只需要简单的点击install.2013年12月 ...

  3. git操作中出现Unlink of file '......' failed. Should I try again?

    在操作git中有时候会提示 Unlink of file '......' failed. Should I try again? 原因是你工作目录有某些文件正在被程序使用,这个程序多半是Idea,V ...

  4. 利用Caffe训练模型(solver、deploy、train_val) + python如何使用已训练模型

    版权声明:博主原创文章,微信公众号:素质云笔记,转载请注明来源“素质云博客”,谢谢合作!! https://blog.csdn.net/sinat_26917383/article/details/5 ...

  5. angualrjs 配置超时时间

    timeout 1 本想通过$httpProvider的defaults属性配置timeout时间, defaults中没有这个属性. https://docs.angularjs.org/api/n ...

  6. Android studio Program type already present: com.****.BuildConfig

    Android studio 抛错,是因为有2个module在 AndroidManifest.xml 里面具有一样的package name,修改不同名字即可. 还有一种情况是多个module对同一 ...

  7. redmine在linux上的mysql性能优化方法与问题排查方案

    iredmine的linux服务器mysql性能优化方法与问题排查方案     问题定位:   客户端工具: 1. 浏览器inspect-tool的network timing工具分析   2. 浏览 ...

  8. 关于python协程中aiorwlock 使用问题

    最近工作中多个项目都开始用asyncio aiohttp aiomysql aioredis ,其实也是更好的用python的协程,但是使用的过程中也是遇到了很多问题,最近遇到的就是 关于aiorwl ...

  9. [elk]kafka集群

    kafka高可用 并发写 每一个分区都是一个顺序的.不可变的消息队列, 并且可以持续的添加.分区中的消息都被分了一个序列号,称之为偏移量(offset),在每个分区中此偏移量都是唯一的. 并发读 数据 ...

  10. Git入门到高级系列2-git高级操作

    视频课程地址 腾讯课堂 git 清理 git clean命令用来从你的工作目录中删除所有没有tracked过的文件. 命令 说明 git clean -n 告诉你哪些文件会被删除. 记住他不会真正的删 ...