通过 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"
}
}
我正在努力学习 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"
}
}