基於Oracle的EntityFramework的WEBAPI2的實現(一)——準備工作

來源:互聯網
上載者:User

標籤:

目前在.net的範圍內,好的而且方便的ORM的真的不是很多,與VS整合方便的也就當屬EntityFramework(以下簡稱EF,不知道為什麼,總EF這個縮寫好不專業)。但是,好多公司使用的又是ORACLE,導致使用EF的時候會出現各種不如意的情況,包括搭建環境的時候,都很蛋疼。最近終於有一個項目上了這種方式,而且很成功,所以,在這裡跟大家分享一下,也希望有問題的地方大家指出來,一起改進。

環境配置由以下幾個重要點:

  1. Oracle的ODP安裝(包含Oracle調用控制項和Oracle的vs工具)
  2. Webapi項目的建立
  3. 微軟EntityFramework6的安裝
  4. 將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安裝包中,找到這兩個檔案,解壓出來放到項目裡面,然後直接對這兩個檔案進行引用即可。】

基於Oracle的EntityFramework的WEBAPI2的實現(一)——準備工作

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.