В файле конфигурации приложения не удалось найти строку подключения с именем
Я использую EF и создан .EDMX из него, но тогда я хотел, чтобы он использовался только для автоматического создания файлов классов.
затем я использовал файлы классов для создания модели сущностей, а затем создал контекст БД, а затем репозиторий. Я вызываю WebApi (который находится в отдельном проекте, но в том же решении) для доступа к репозиторию для получения данных. Пока я запускаю 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"
7 ответов
вы говорите "в моем DAL, у меня есть webConfig". Я предполагаю, что строка подключения находится в файле конфигурации библиотеки ссылочных классов, но не в основном файле конфигурации, который у вас есть в вашем проекте ввода (проект веб-api, я думаю, глядя на теги).
Если это так, просто скопируйте строку подключения в файл конфигурации проекта записи.
в файле DBContext удалите
public RaficaDB()
: base("name=DefaultConnection"){}
to
public RaficaDB()
: base("DefaultConnection"){}
EF 4.3, EF 5 и EF 6 не нравится строка подключения называется name=xxxxx
ответ нашел здесь -> строка подключения с именем "MyApplicationEntities" не может быть найдена в файле конфигурации приложения
вставьте следующий раздел в раздел конфигурации .конфигурационный файл того же проекта, где ваши .файл edmx находится под.
вы также можете создать другую строку подключения для другой среды в.конфигурационный файл основного проекта и передать любую строку подключения в качестве параметра конструктора 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>
Я обнаружил, что это сработало:
1) Проверьте, есть ли у вас несколько "App.конфигурационный файл. 2) Проверьте, имеет ли неправильное имя, чем строка подключения, которую он должен использовать. 3) сохраните проект и запустите программу
Он должен работать сейчас.
самое простое решение:
удалить текущий файл edmx и связанную строку подключения в приложении.конфиг и добавьте элемент Edmx с тем же именем, что и предыдущий.
это работает для меня.
скопировать и вставить в строку connectionString в ваш веб-проект веб-API.файл конфигурации решит проблему.
Это глупо, но у меня была эта ошибка, которая была исправлена на Rebuild All
!!
С таким же успехом можно было включать и выключать его....