oracle - 通过 API 设置文件连接到 Oracle 数据库
问题描述
我正在尝试学习 API,因为我们有一个商业案例。在大多数情况下,我可以从我们的 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
模型,并且我找到了有关如何连接到与您的匹配的 oracle 的类似文档using (OracleConnection con = new OracleConnection(ConnectionString)
,因此我在此处提供教程来解决您的要求。这是我的测试细节:
我新创建了一个 asp.net core 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 文件-> 配置方法,并添加这些行代码:
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"
}
}
推荐阅读
- android - Android Accessibility Service 未在 oreo 中收到通知
- wso2 - WSO2 APIM 约束违反 CON_APP_KEY
- angular - 突出显示剑道网格的第一行
- java - splunk 检查消息是否包含某些字符串
- javascript - 从java中的base64字符串解码表情符号
- angular - Angular 2+ 中的 $rootScope.new()
- php - php 检索会话变量以限制对页面的访问
- android - React Native:生成发布构建 APK 错误:app:mergeReleaseAssets FAILED
- c# - 在方法中将自定义类属性作为 lambda 传递
- android - 如何在 SDK 中使用 Dagger 2?