В файле конфигурации приложения не найдено ни одной строки строки соединения

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

Затем я использовал файлы классов для создания модели сущности, а затем создал контекст БД, а затем репозиторий. Я вызываю WebApi (который находится в отдельном проекте, но такое же решение), чтобы получить доступ к репозиторию для данных GET. Пока я запускаю WebApi, я получаю сообщение об ошибке,

{ "В файле конфигурации приложения не может быть найдена строка с именем" DBEntities ".}

Но внутри моего DAL у меня есть webConfig, и у меня есть следующая запись, поэтому я не совсем уверен, что пошло не так,

add name="DBEntities" connectionString="metadata=res://*/Models.DBModel.csdl|res://*/Models.DBModel.ssdl|res://*/Models.DBModel.msl;provider=System.Data.SqlClient;provider connection string="data source=MY-PC;initial catalog=DB;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" 

Ответ 1

Вы говорите "внутри моего DAL, у меня есть webConfig". Я предполагаю, что строка подключения находится в файле конфигурации справочной библиотеки классов, но не в главном файле конфигурации, который у вас есть в вашем проекте ввода (проект веб-api, я думаю, глядя на теги).

Если это так, просто скопируйте строку подключения в файле конфигурации проекта ввода.

Ответ 3

Вставьте следующий раздел в разделе конфигурации файла .config того же проекта, где находится ваш .edmx файл.

Вы также можете создать другую строку соединения для другой среды в файле .config основного проекта и передать любую строку соединения в качестве параметра конструктора DBContext.

<connectionStrings>
  
<add name="DBEntities" connectionString="metadata=res://*/Models.DBModel.csdl|res://*/Models.DBModel.ssdl|res://*/Models.DBModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=MY-PC;initial catalog=DB;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />

</connectionStrings>

Ответ 4

Я обнаружил, что это сработало:

1) Проверьте, есть ли у вас несколько файлов "App.config". 2) Проверьте, есть ли неправильное имя, чем строка подключения, которую он должен использовать. 3) Сохраните проект и запустите программу

Теперь он должен работать.

Ответ 5

Самое простое решение:

Удалить текущий файл edmx и связанную строку подключения в app.config и добавьте элемент Edmx с тем же именем, что и предыдущий.

это сработало для меня.

Ответ 6

Скопируйте и вставьте строку соединения в файл WEBAPI. Файл web.config решит проблему.