ABP架構EF6連結Oracle資料庫手動遷移

來源:互聯網
上載者:User

標籤:配置   base   get   報錯   you   cps   eth   成功   分享   

環境:VS2017 + ABP官方模板(不含Zero) +Oracle 11Gx64DB  + Oracle 11Gx32Client(PLSQL工具訪問)

一、Abp項目的下載以及運行

1、建立abp項目。進入官網 https://aspnetboilerplate.com/下載項目模板。abp項目有兩種架構,一種是單頁面(angularjs),另一種是mvc的。點擊建立按鈕。入:

2、對下載的源碼首先進行編譯,讓其自動下載Nuget項目依賴包,保證源碼可以編譯通過。

3、在WinRun2.Core項目中增加User.cs類:

     對User實體增加幾個屬性如下:

 3、在WinRun2.EntityFramework項目中對WinRun2DbContext類進行修改:

增加DbSet<User>: 

增加Oracle資料庫的Schema(預設是dbo,Oracle資料庫必須要修改): 

 

二、Oracle DB 對EF code first的支援

1、在WinRun2.EntityFramework項目增加Oracle EF 驅動的引用,在Nuget中進行安裝:

 2、修改WinRun2.Web項目中Web.Config配置資訊(也可以在WinRun2.Web中也安裝Oracle.ManagedDataAccess的依賴包,就會自動在Config中產生Oracle配置資訊)

 

 

三、建立Oracle資料庫Schema

 1、首先要保證本地用戶端可以連結到Oracle DB伺服器,用DBA許可權的帳號使用Oracle開發工具或SQLPLUS建立新的Schema資訊:

2、登入cps/[email protected]進行測試,查詢所有Table:

3、配置Web.Config中的Oracle連結字串:

    TNS配置:

    連結字串配置:

 

四、實現資料移轉

1、add-migration:

2、update-database,此處報錯了:

3、錯誤處理,原因是ODP.NET GAC (Global Assembly Cache)中不存在或版本不一致。

Installing Oracle.ManagedDataAccess.dll to GAC resolved my issue. If you installed Oracle Client or Oracle Database on your machine that might be the cause.

注意路徑,不同的系統版本(Win10)路徑會不一樣:"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\gacutil.exe" /i Oracle.ManagedDataAccess.dll

4、再次update-database,還是報錯了,不過換了一個錯誤:

4、此錯誤說明Oracle驅動已OK,連結登入時報錯,再次解決該問題:

在連結字串中增加Persist Security Info=true 即可。

5、再次遷移,成功了!

6、Oracle資料庫的改變

 

遷移支援自增長類型(Oracle使用的Trigger+Sequences實現自增長ID)

 

參考連結:

http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/dotnet/CodeFirst/index.html#overview

http://www.cnblogs.com/freeliver54/p/6951700.html

http://www.cnblogs.com/yuanbeier/articles/6420621.html

http://blog.csdn.net/yangxuilyx/article/details/52561874

https://stackoverflow.com/questions/32006884/entity-framework-seed-method-exception

http://www.cnblogs.com/haight/p/5600756.html

ABP架構EF6連結Oracle資料庫手動遷移

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.