[VSTS] 让ADO.NET Entity Framework支持Oracle数据库

近期由于项目所需不得不研究Oracle数据库,回想上一次用Oracle还是07年的事情,实习时候做华晨宝马的项目简单接触了Oracle。这次的项目需要基于.NET平台,我个人的习惯是能用微软自带的就不用第三方的,基于这个原则先想到的ORM模型就是Entity Framework,于是动手尝试一下。

默认情况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的项目:

image

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

image

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

image

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

image

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

image

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

image

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

image

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

image

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

image

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



posted @ 2011-12-16 13:56 WilsonWu 阅读(2245) 评论(10) 编辑 收藏

好文章,这个需要顶一下,真需要顶。
 回复 引用 查看   
#2楼 2011-12-16 15:06 风清月晓      
oracal数据库很牛叉呀!
 回复 引用 查看   
#3楼 2011-12-16 15:43 echosyl      
oracle对Entity Framework 的支持有问题,博主试下排序分页就知道了,非常悲剧。分页后排序无效,生成的sql语句有错误。
 回复 引用 查看   
#4楼 2011-12-16 16:28 茗流      
不错啊 不错 ---让ADO.NET Entity Framework支持Oracle数据库
 回复 引用 查看   
#5楼[楼主] 2011-12-16 16:31 WilsonWu      
@echosyl
这样啊,我还真要试试,不过Oracle官方的Entity Framework是Beta版,希望正式版早点出来,可能有改进。

 回复 引用 查看   
#6楼 2011-12-16 16:49 Dozer      
@echosyl
那就把数据取出来后再排序吧~

 回复 引用 查看   
#7楼 2011-12-16 16:52 afeng124      
个人比较反对使用oracle用Entity Framework,最近试了一下odp.net,感觉好快,效率不错。以前比较喜欢把业务逻辑写在数据库里。这样的话,oracle哪些高级特性就用不了了。
 回复 引用 查看   
#8楼 2011-12-17 09:05 小彬      
@echosyl
这个是oracle出的,不是EFOracleProvider,不知道还有没有这个问题。

 回复 引用 查看   
#9楼[楼主] 2011-12-17 12:21 WilsonWu      
@afeng124
我们要开始的项目数据库太庞大,不用ORM的话未来不论开发还是维护都会很费劲,多谢你的建议。

 回复 引用 查看   
#10楼 2011-12-21 10:51 宽田      
这个安装有顺序吧