基于Oracle的EntityFramework的WEBAPI2的实现(一)——准备工作

来源:转载


目前在.net的范围内,好的而且方便的ORM的真的不是很多,与VS集成方便的也就当属EntityFramework(以下简称EF,不知道为什么,总EF这个缩写好不专业)。但是,好多公司使用的又是ORACLE,导致使用EF的时候会出现各种不如意的情况,包括搭建环境的时候,都很蛋疼。最近终于有一个项目上了这种方式,而且很成功,所以,在这里跟大家分享一下,也希望有问题的地方大家指出来,一起改进。

环境配置由以下几个重要点:

Oracle的ODP安装(包含Oracle调用控件和Oracle的vs工具) Webapi项目的建立 微软EntityFramework6的安装 将Oracle的托管引用改为非托管引用(可以脱离目标环境的位数限制) ODP.NET的安装

因为安装ODP.NET后,我们需要重启VS,所以,我们先来安装ODP.NET再来新建项目。

下载oracle的dbac(x86) 下载地址(不能下载请留言) ,关掉所有vs,然后安装下载下来的压缩包里面的setup.exe。安装设置的两个目录,一定不要有特殊字符,可以用同一个,@,()等千万别有。

Webapi项目的建立

打开vs的新建项目界面,选C#-WEB-ASP.NET MVC,然后填写项目名称,选择项目所在位置,点确定。

继而弹出新的窗口,按图中选择操作:

然后点击确定,就会打开一个项目,其它的配置如同其它项目一样。

引入EntityFramework

打开工具,选择Nuget包工具管理,如果图打开Nuget包管理器:

选择联机,找到entity framework,点安装,安装到刚刚我们的WebApi项目中。

引用Oracle的ODP.NET

右击项目的引用·添加新的引用·在扩展里面找到Oracle.ManagedDataAccess以及Oracle.ManagedDataAccess.EntityFramework【注意1】。然后确定。此时,项目中就成功引用了这两个东西。

将如下web.config内容加入到web.config中,注意如果有相同的,则将原有的替换掉。

<configSections> <section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" /> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /></configSections><connectionStrings></connectionStrings><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><oracle.manageddataaccess.client> <version number="*"> <settings> <setting name="TNS_ADMIN" value="C:/TNS_ADMIN" /> <setting name="TraceOption" value="1" /> <setting name="PerformanceCounters" value="0" /> </settings> </version></oracle.manageddataaccess.client>

需要注意的是,[TNS_ADMIN]这个东西后面的value指向的是放TNS文件的目录,如果你不是用TNS文件来管理数据库的IP地址,而是在连接字符串中直接使用IP连接,则可以不写这个SETTING项。

至此,准备工作全部完成。

【注意1:如果引用的时候找不到Oracle.ManagedDataAccess以及Oracle.ManagedDataAccess.EntityFramework,可以在下面的ODP安装包中,找到这两个文件,解压出来放到项目里面,然后直接对这两个文件进行引用即可。】

转载请注明作者及来源:张峻崎,博客园



分享给朋友:
您可能感兴趣的文章:
随机阅读: