Ответ 1
Наконец, я понял, что добавил запись подключения в файл web.config, созданный VS в папке Views.
Мой плохой.
У меня есть 3 класса проектов в моих решениях. 1. Проект MVC4 2. Домен 3. Тесты
В проекте MVC4 я добавил файл web.config со строкой подключения как
<add name="EfDbContext" connectionString="Data Source=.;Initial Catalog=SportsStore;Integrated Security=true;" providerName="System.Data.SqlClient"/>
У меня есть класс по имени EfDbContext в проекте Domain, который наследует DbContext.
Когда я просматриваю веб-сайт в браузере, я получаю сообщение об ошибке сервера.
Я отлаживал класс EfDbContext и обнаружил, что Database.Connection.ConnectionString устанавливается в \SqlExpress с базой данных как EfDbContext.
Почему это?
Наконец, я понял, что добавил запись подключения в файл web.config, созданный VS в папке Views.
Мой плохой.
У вас должна быть ваша строка подключения как полное пространство имен в контексте, если ваш класс контекста находится в другом проекте
Например:
<add name="YourClassProject.EfDbContext" connectionString="Data Source=.;Initial Catalog=SportsStore;Integrated Security=true;" providerName="System.Data.SqlClient"/>
Вы должны создать свой DbContext с именем строки подключения, переданным конструктору
public class UnicornsContext : DbContext
{
public UnicornsContext()
: base("EfDbContext")
{
}
}