ABP .net core集成访问Oracle数据库

1.添加包引用:

Microsoft.EntityFrameworkCore.Relational
Oracle.EntityFrameworkCore
2.重写DbContext OnModelCreating

/// <summary>
        /// 判断如果是Oracle,需要执行Schema
        /// </summary>
        /// <param name="modelBuilder"></param>

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            //判断当前数据库是Oracle 需要手动添加Schema(DBA提供的数据库账号名称)
            if (this.Database.IsOracle())
            {
                modelBuilder.HasDefaultSchema(new SqlConnectionStringBuilder(Database.GetDbConnection().ConnectionString).UserID.ToUpper());
            }
            base.OnModelCreating(modelBuilder);
        }

3.在DbContextConfigurer 中启用oracle连接

 public static class EzxDbContextConfigurer
    {
        public static void Configure(DbContextOptionsBuilder<EzxDbContext> builder, string connectionString)
        {
            //builder.UseSqlServer(connectionString);
            builder.UseOracle(connectionString);
        }

        public static void Configure(DbContextOptionsBuilder<EzxDbContext> builder, DbConnection connection)
        {
            builder.UseSqlServer(connection);
        }
    }

4.在appsettings.json中添加Oracle的字符串的配置

{
  "ConnectionStrings": {
    //"Default": "Server=localhost; Database=EzxDb; Trusted_Connection=True;"
    "Default": "User Id=cis;Password=cis;Data Source=127.0.0.1:1521/hisbd"
  },
  "Authentication": {
    "JwtBearer": {
      "IsEnabled": "true",
      "SecurityKey": "Ezx_C421AAEE0D114E9C",
      "Issuer": "Ezx",
      "Audience": "Ezx"
    }
  },
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Debug",
      "System": "Information",
      "Microsoft": "Information"
    }
  }
}

  

ABP .net core集成访问Oracle数据库

上一篇:MYSQL中的InnoDB存储引擎简介


下一篇:JS.压缩&解压缩