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

Я использую 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=&quot;data source=MY-PC;initial catalog=DB;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />

</connectionStrings>

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

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

Он должен работать сейчас.


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

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

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


скопировать и вставить в строку connectionString в ваш веб-проект веб-API.файл конфигурации решит проблему.


Это глупо, но у меня была эта ошибка, которая была исправлена на Rebuild All !!
С таким же успехом можно было включать и выключать его....