1.4、ABP .net core版切換Oracle數據庫


1、安裝對應的Nuget包

    Oracle      =>    Oracle.EntityFrameworkCore   【目前為止是預發行版本2.19.0-beta4】  

    SqlServer  =>   Microsoft.EntityFrameworkCore 【目前為止穩定版本2.2.4】

 

2、修改對應的DbContext文件,增加下面的代碼

 1 /// <summary>
 2 /// 判斷如果是Oracle,需要執行Schema
 3 /// </summary>
 4 /// <param name="modelBuilder"></param>
 5 
 6 protected override void OnModelCreating(ModelBuilder modelBuilder)
 7 {
 8     //判斷當前數據庫是Oracle 需要手動添加Schema(DBA提供的數據庫賬號名稱)
 9     if (this.Database.IsOracle())
10     {
11         modelBuilder.HasDefaultSchema("NETCORE");
12     }
13     base.OnModelCreating(modelBuilder);
14 }

 

3、添加Oracle的字符串的配置

 

 

 

4、修改字符串的鏈接配置

 

 

 

5、修改為使用Oracle

 

 

 

6、使用命令遷移

 

這里會報標識符過長的錯誤,這邊根據具體情況進行修改

這邊是因為使用了GUID導致的,Oracle中表名,列名,標識列字符不能超過30個字符

 

 

 

記錄:

.net core對數據庫的支持

https://docs.microsoft.com/en-us/ef/core/providers/?tabs=dotnet-core-cli

 

擴展:

  1. dbContext.Database.EnsureDeleted(); dbContext.Database.EnsureCreated();用這兩個方法,可以簡單粗暴的將數據庫刪除在重建,就不用手動輸入命令進行遷移,這樣做很顯然會導致數據庫中已有的數據丟失。

  2. 我們也可以使用dbContext.Database.Migrate()代替輸入“Update-DataBase”命令而在程式中自動遷移,但是沒有找到替代“Add-Migration”的命令。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM