目前在.net的范围内,好的而且方便的ORM的真的不是很多,与VS集成方便的也就当属EntityFramework(以下简称EF,不知道为什么,总EF这个缩写好不专业)。但是,好多公司使用的又是ORACLE,导致使用EF的时候会出现各种不如意的情况,包括搭建环境的时候,都很蛋疼。最近终于有一个项目上了这种方式,而且很成功,所以,在这里跟大家分享一下,也希望有问题的地方大家指出来,一起改进。
环境配置由以下几个重要点:
因为安装ODP.NET后,我们需要重启VS,所以,我们先来安装ODP.NET再来新建项目。
下载oracle的dbac(x86) 下载地址(不能下载请留言) ,关掉所有vs,然后安装下载下来的压缩包里面的setup.exe。安装设置的两个目录,一定不要有特殊字符,可以用同一个,@,()等千万别有。
打开vs的新建项目界面,选C#-WEB-ASP.NET MVC,然后填写项目名称,选择项目所在位置,点确定。
继而弹出新的窗口,按图中选择操作:
然后点击确定,就会打开一个项目,其它的配置如同其它项目一样。
打开工具,选择Nuget包工具管理,如果图打开Nuget包管理器:
选择联机,找到entity framework,点安装,安装到刚刚我们的WebApi项目中。
右击项目的引用·添加新的引用·在扩展里面找到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安装包中,找到这两个文件,解压出来放到项目里面,然后直接对这两个文件进行引用即可。】
转载请注明作者及来源:张峻崎,博客园