ABP .net core版切换Oracle数据库

声明:该文用于记录开发时遇到的相关问题,在网上查找到的解决方案,预防未来遇到相似问题时找不到相应解决方案

转载:https://www.cnblogs.com/Johnfx-home/p/12425961.html

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

猜你喜欢

转载自www.cnblogs.com/strawbear/p/12713136.html
今日推荐