我使用.net核心在Azure Functions中使用EF core 2.0。我试图从local.settings.json读取db ConnectionString,它定义为:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"AzureWebJobsDashboard": "UseDevelopmentStorage=true"
},
"ConnectionStrings": {
"MyDbConnStr": "Data Source=.;Initial Catalog=xxxxxxx"
}
}
Environment.GetEnvironmentVariable()不返回任何连接字符串信息,我也不能将ConfigurationManager.ConnectionStrings与.net core一起使用。 如何从代码中访问连接字符串?
答案 0 :(得分:10)
您可以使用Microsoft.Azure.WebJobs.Host
中的一个辅助类:
AmbientConnectionStringProvider.Instance.GetConnectionString("MyDbConnStr")
这个类将工作委托给名为ConfigurationUtility
的内部类,它根据
var configuration = new ConfigurationBuilder()
.AddEnvironmentVariables()
.AddJsonFile("appsettings.json", true)
.Build();
var conn = configuration.GetConnectionString("MyDbConnStr");
答案 1 :(得分:7)
您可以使用Environment.GetEnvironmentVariable
。键是“ConnectionStrings:YourKey”
假设您的local.settings.json如下所示:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"AzureWebJobsDashboard": "UseDevelopmentStorage=true"
},
"ConnectionStrings": {
"sqldb_connection": "connection_string_here"
}
}
使用Environment.GetEnvironmentVariable("ConnectionStrings:sqldb_connection", EnvironmentVariableTarget.Process);
得到价值