EF Code First имеет несколько способов определения, где и как создается база данных.Фактически он имеет ряд Условных обозначений (вместо конкретной конфигурации или кода).Я предпочитаю быть конкретным (см. Мой пример строки подключения ниже), но если вы используете соглашение, оно определяется Microsoft следующим образом:
Вот фрагмент этой страницы:
СоединениеString Convention
Entity Framework использует соглашения по умолчанию для создания базы данных на экземпляре localhost \ SQLEXPRESS или сервере LocalDB , а именует базу данных после полного имени типа производного контекста (например, CodeFirstModel.SchoolEntities).
Visual Studio 11 включает в себя сервер базы данных LocalDb, а не SQLEXPRESS.Во время установки пакет EntityFramework NuGet проверяет, какой сервер базы данных доступен.Пакет NuGet затем обновит файл конфигурации, установив сервер базы данных по умолчанию, который Code First использует при создании соединения по соглашению.Если SQLEXPRESS запущен, он будет использован.Если SQLEXPRESS недоступен, вместо этого LocalDb будет зарегистрирован по умолчанию.В файл конфигурации не вносятся изменения, если он уже содержит настройку для фабрики соединений по умолчанию.Если строка соединения установлена в коде, то экземпляр, установленный в коде, будет иметь приоритет над всем, что найдено в файле конфигурации.
Когда приложение запускается в последующие времена, если модель не изменяется, существующая база данных будетиспользуемый.Если модель изменяется, и вы не устанавливаете инициализатор, вы получите исключение: «Модель, поддерживающая контекст« ContextName », изменилась с момента создания базы данных.Рассмотрите возможность использования Code First Migrations для обновления базы данных ».
Один из способов переопределить соглашение Code First для имени базы данных - добавить файл App.config или Web.config, содержащий строку подключения с тем же именем.как ваш тип контекста.Файл .config должен быть добавлен в проект, содержащий исполняемую сборку.
Примечание. При работе с Code First строка подключения должна быть обычной строкой подключения к базе данных.При работе с Entity Framework Designer строка подключения должна быть строкой EntityConnection.
Ниже приведен пример одной из моих строк подключения EF Code First:
<add name="NameOfYourDbContextClass" connectionString="Data Source=YOUR-DB-SERVER;Initial Catalog=THE-DB-NAME-YOU-WANT;Persist Security Info=True;Trusted_Connection=true;" providerName="System.Data.SqlClient" />
И последнее, что нужно иметь в виду ... строки соединения (и конфигурация в целом) определяются контекстом приложения.Другими словами, если у вас есть класс доступа к данным (основанный на DbContext) в другом проекте, строки соединения все еще должны быть определены в вашем файле web.config (в веб-проекте) в качестве примера.
УдачиБен!