Azure函数中的EF Core 2.0连接字符串.NET CORE



我使用.NET Core在Azure函数中使用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"
  }
}

emovention.getEnvironMentVariable()不返回任何连接字符串信息,我都无法使用带有.net core的configurationManager.connectionsrings。如何从代码访问连接字符串?

您可以使用Microsoft.Azure.WebJobs.Host中的一个助手类:

AmbientConnectionStringProvider.Instance.GetConnectionString("MyDbConnStr")

此类将作品委派给了名为ConfigurationUtility的内部类,该课程与

一致
var configuration = new ConfigurationBuilder()
    .AddEnvironmentVariables()
    .AddJsonFile("appsettings.json", true)
    .Build();
var conn = configuration.GetConnectionString("MyDbConnStr");

您可以使用Environment.GetEnvironmentVariable。钥匙是" ConnectionsRings: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);要获得值

最新更新