通过 API 设置文件连接到 Oracle 数据库

Connection to Oracle Database Via an API Settings File

我正在努力学习 API,因为我们有一个商业案例。在大多数情况下,我可以读取和 Serialize/Deserialize 我们 Oracle 数据库中的数据 - 但是,为了连接到数据库,我对页面顶部的 connectionString 变量进行了硬编码,例如

con = new OracleConnection("Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=my.oracle.host)(PORT=9999)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=myOracleService)));User Id=XXXXXX;Password=XXXXXX; ");

我创建了 OracleSettingsDB.cs 文件如下

public class OracleDbSettings{

        public string Host{get;set;}

        public string Port{get;set;}

        public string User{get;set;}

        public string Password{get;set;}

        public string Service{get;set;}

        public string ConnectionString{

            get
            {
                return $"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={Host})(PORT={Port})))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME={Service})));User Id={User};Password={Password};";

            }
        }
    }
}

之后,将值添加到 appsettings.json

"AllowedHosts": "*",
  "OracleDbSettings": {
      "Host": "my.oracle.host",
      "Port":"9999",
      "User": "XXXXX",
      "Service":"myOracleService",
      "Password": "XXXXXX"  //Yes I know I shouldnt store this here
  }```

I added the connectionString into the Startup.cs

``` var connectionString = Configuration.GetSection(nameof(OracleDbSettings)).Get<OracleDbSettings>();

但我现在不明白我如何在存储库文件中引用 connectionString 以便我可以调用

using (OracleConnection con = new OracleConnection(ConnectionString)

希望有人能够为我指明正确的方向,因为我在 Youtube 上观看的所有视频或我发现的页面都只引用了硬编码数据源 - 我们不想这样做。

谢谢,希望那里有足够的信息 =]

恐怕您需要将 appsettings.json 文件中的值绑定到您的 OracleDbSettings 模型,我在这里找到 similar document about how to connect to oracle which matches your using (OracleConnection con = new OracleConnection(ConnectionString), so I provide the tutorial 来解决您的需求。这是我的测试详情:

我新创建了一个 asp.net 核心 5 mvc 项目并创建了一个像你的模型:

namespace WebMvcApp.Models
{
    public class OracleDbSettings
    {
        public const string keyword = "OracleDbSettings";
        public string Host { get; set; }
        public string Port { get; set; }
        public string User { get; set; }
        public string Password { get; set; }
        public string Service { get; set; }
        public string ConnectionString
        {
            get
            {
                return $"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={Host})(PORT={Port})))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME={Service})));User Id={User};Password={Password};";
            }
        }
    }
}

修改startup.cs file->Configure 方法,添加以下行代码:

var dbSettings = new OracleDbSettings();
Configuration.GetSection(OracleDbSettings.keyword).Bind(dbSettings);
var connect_string = dbSettings.ConnectionString;

我的 appsettings.json 看起来像这样:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "OracleDbSettings": {
    "Host": "my.oracle.host",
    "Port": "9999",
    "User": "XXXXX",
    "Service": "myOracleService",
    "Password": "XXXXXX"
  }
}