Как определить атрибут имени провайдера в настройках приложения функции Azure - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь установить соединение с базой данных Entity Framework в моей функции Azure.Поэтому мне нужно определить строку подключения в настройках приложения функции.Простое добавление строки подключения с моим именем класса DbContext в качестве ключа в портале Azure приводит к исключению, так как атрибут имя-провайдера не определен при подключении к базе данных.Я использую Entity Framework v. 6.2.0

Исключение составляет:

System.InvalidOperationException: 'Строка подключения' CloudOrchestrationEntities 'в конфигурации приложенияфайл не содержит обязательный атрибут providerName. "'

Есть ли способ использовать строку json, подобную той, которую я могу определить в local.settings.json в настройках приложения на портале Azure?

"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"
}
}

Использование этой записи json в качестве строки подключения в портале Azure, включая имя поставщика, приводит к неверной строке подключения в коде моей функции. enter image description here enter image description here

Я, конечно, могу определить строку подключения как обычную настройку приложения и извлечь ее из кода своей функции для подключения к базе данных, но я не хочу, чтобы эта проблема решалась.На самом деле я не хочу редактировать автоматически сгенерированные классы EF, так как делюсь ими с другим проектом.

1 Ответ

0 голосов
/ 12 июня 2018

В Azure невозможно указать имя поставщика, равное System.Data.EntityClient, только System.Data.SqlClient и MySql.Data.MySqlClient.

В этом вопросе есть некоторые обходные пути и возможные решения Отсутствует имя поставщика при отладке функции Azure, а также при развертывании функции Azure

...