Задать вопрос

Как правильно подключить БД в ASP.NET MVC 4?

Разрабатываю ASP.NET MVC 4 приложение с использованием Entity Framework с подходом Code First.

Ход действий: создаю БД Sql Server, при этом в "Обозревателе серверов" появляется подключение к ней, описываю модели бизнес-логики, создаю контекст для БД на основе DbContext, создаю в Web.config строку подключения, в качестве строки использую строку из свойств подключения созданного мною вначале.

При запуске приложения в созданной мною БД появляются таблицы для Simple MembershipProvider, остальные модели никак не отображаются, изменения моделей также никак не сказываются на БД. Посмотрел какие есть подключения к серверу LocalDb -- оказалось что создается локальная БД, в которой есть таблицы для всех описанных мною моделей, собственно которая и используется в приложении.

Соглашения по именованию моделей и контекста соблюдаю, строка подключения, раз она предлагается Visual Studio, должна быть априори верной.

Собственно вопрос: как же все-таки нужно подключаться к созданной БД, чтобы использовалась она, а не создавалась новая?

P.S. Изменив модель и запустив приложение в очередной раз обнаружил, что созданная мною БД внезапно изменилась, а вместо локальной БД появилась используется другая, созданная заново. После этого, при повторении аналогичных действий такое поведение больше не наблюдается. Теперь я совсем запутался.
  • Вопрос задан
  • 8971 просмотр
Подписаться 3 Оценить Комментировать
Решения вопроса 1
@aimp-programming
Нужно не просто запустить приложение(откуда приложение узнает что вам нужно создать таблицы на основе моделей),а обратиться к контексту данных

контекст для БД например:
public class DbEntity : DbContext
    {
        public DbSet<Player> Players { get; set; }
        public DbSet<Team> Teams { get; set; }
    }

Если ты создаешь БД в папке App_Data,то строка подключения должна выглядеть так:
<connectionStrings>
    <add name="DbEntity" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename='|DataDirectory|\YourBase.mdf';Integrated Security=True" providerName="System.Data.SqlClient" />
  </connectionStrings>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Вот, почитайте про инициализаторы www.codeguru.com/csharp/article.php/c19999/Underst...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы