如何在Azure函数的应用程序设置中定义providername属性

时间:2018-06-11 09:27:27

标签: entity-framework connection-string azure-functions appsettings

我正在尝试在Azure功能中建立实体框架数据库连接。因此,我需要在函数的应用程序设置中定义连接字符串。只需在Azure Portal中添加带有我的DbContext类名称的连接字符串作为键,就会导致异常,因为在连接到数据库时未定义providername属性。我正在使用Entity Framework v.6.2.0

例外是:

System.InvalidOperationException: '应用程序配置文件中的连接字符串'CloudOrchestrationEntities'不包含必需的providerName属性。“'

有没有办法在Azure门户的应用程序设置中使用类似我可以在local.settings.json中定义的json字符串?

"ConnectionStrings": {
"CloudOrchestrationEntities": {
  "ConnectionString": "metadata=res://*/CloudOrchestration.csdl|res://*/CloudOrchestration.ssdl|res://*/CloudOrchestration.msl;provider=System.Data.SqlClient;provider connection string='data source=*****.database.windows.net;initial catalog=*****;user id=*****;password=*****;MultipleActiveResultSets=True;App=EntityFramework'",
  "ProviderName": "System.Data.EntityClient"
}
}

在Azure门户中使用此json条目作为连接字符串,包括提供程序名称会导致我的函数代码中的连接字符串无效。 enter image description here enter image description here

我当然可以定义连接字符串as a usual app setting and retrieve it in my function code以连接到db,但这不是我希望解决此问题的方式。实际上我不想编辑自动生成的EF类,因为我与其他项目共享它们。

1 个答案:

答案 0 :(得分:0)

无法在Azure上将提供程序名称指定为System.Data.EntityClient,仅System.Data.SqlClientMySql.Data.MySqlClient

此问题Missing ProviderName when debugging AzureFunction as well as deploying azure function

中有一些解决方法和可能的解决方案