Я нашел проблему. Я добавлю ответ

я проблема с получениемDbContext правильно вытащить мою строку подключения из моегоlocal.settings.json

Контекст:

Это функциональный проект AzureОсновной код проблемы находится вSystem.Data.Entity.Internal.AppConfigХотя у меня естьlocal.settings.json файл это не дотнет ядро. Это .net 4.6.1

Сообщение об ошибке:

«Строка подключения« ShipBob_DevEntities »в файле конфигурации приложения не содержит обязательный атрибут providerName.»

Конфигурация Json:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "",
    "AzureWebJobsDashboard": ""
},

"ConnectionStrings": {
"ShipBob_DevEntities": {
  "ConnectionString": "metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string='data source=***;initial catalog=***;persist security info=True;User Id=***;Password=***;;multipleactiveresultsets=True;application name=EntityFramework'",
  "providerName": "System.Data.EntityClient"
    }
  }
}  

Проверенные версии конфигурации:

Перемещение имени провайдера в фактическоеConnectionString значение токена: та же ошибкаНастройкаprovider атрибут внутриConnectionString приписыватьEntityClient: это ничего не сделал

ИзготовлениеShipBob_DevEntities строковое значение = до значенияConnectionString : это вызывает новые ошибки, подобные которым

метаданные ключевых слов не поддерживаются

Я попытался использовать строку подключения ADO, которая выбрасываетcode first исключение, которое возникает, когда строка подключения неверна вdatabase first подход.

Я взял на себя смелость декомпилироватьEntityFramework.dll с помощьюdotPeek и проследили проблему доSystem.Data.Entity.Internal.LazyInternalConnection.TryInitializeFromAppConfig, Внутри этого метода есть вызовLazyInternalConnection.FindConnectionInConfig который выплевываетConnectionStringSettings объект, который имеет этоProviderName значение установлено в ноль. К сожалению, я не могу отладитьAppConfig.cs класс, который, кажется, использует для генерации этого значения, поэтому я застрял.

До сих пор я ознакомился с этими двумя статьями. Один из них гласит, что имя провайдера следует указывать в качестве собственного токена; Однако это не работает.

https://github.com/Azure/azure-functions-cli/issues/193
https://github.com/Azure/azure-functions-cli/issues/46

Кто-нибудь знает правильный формат для использования в local.settings.json для подключения Entity Framework?

Ответы на вопрос(3)

Ваш ответ на вопрос