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”的命令。

 

posted @ 2020-03-06 12:57  殇琉璃  阅读(1145)  评论(0编辑  收藏  举报