В файле конфигурации приложения не найдено ни одной строки строки соединения
Я использую 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, я думаю, глядя на теги).
Если это так, просто скопируйте строку подключения в файле конфигурации проекта ввода.
Ответ 2
В файле DBContext удалите
public RaficaDB()
: base("name=DefaultConnection"){}
к
public RaficaDB()
: base("DefaultConnection"){}
EF 4.3, EF 5 и EF 6 не любят, чтобы строка соединения называлась name = xxxxx
Ответ найден здесь → В файле конфигурации приложения не может быть найдена строка с именем MyApplicationEntities
Ответ 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="data source=MY-PC;initial catalog=DB;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
Ответ 4
Я обнаружил, что это сработало:
1) Проверьте, есть ли у вас несколько файлов "App.config".
2) Проверьте, есть ли неправильное имя, чем строка подключения, которую он должен использовать.
3) Сохраните проект и запустите программу
Теперь он должен работать.
Ответ 5
Самое простое решение:
Удалить текущий файл edmx и связанную строку подключения в app.config и добавьте элемент Edmx с тем же именем, что и предыдущий.
это сработало для меня.
Ответ 6
Скопируйте и вставьте строку соединения в файл WEBAPI. Файл web.config решит проблему.