Сначала модель с DbContext, не удалось инициализировать новую базу данных
Я сдаюсь.
Я нашел это:
http://blogs.msdn.com/b/adonet/archive/2011/03/15/ef-4-1-model-amp-database-first-walkthrough.aspx
И подумал, что круто.
Поэтому я быстро переработал свою модель, чтобы воспользоваться лучшими из двух миров.
Но теперь моя модель не работает при создании новой базы данных (или добавлении таблиц к существующей).
Я получаю эту ошибку:
Код, сгенерированный с использованием шаблонов T4 для базы данных First и Model First, может работать некорректно, если используется в режиме Code First. Чтобы продолжить использование базы данных First или Model First, убедитесь, что строка подключения Entity Framework указана в файле конфигурации исполняемого приложения. Чтобы использовать эти классы, которые были сгенерированы из Database First или Model First, с кодом First добавьте любую дополнительную конфигурацию с использованием атрибутов или DbModelBuilder API, а затем удалите код, который генерирует это исключение.
В:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
И что моя строка соединения:
<add name="ForumContextContainer"
providerName="System.Data.SqlClient"
connectionString="Data Source=.\SQLExpress; Initial Catalog=iForum; Integrated Security=True"/>
Примечание. Я добавил исходный каталог позже, чтобы попробовать, если он будет работать, но он был точно таким же.
Ответы
Ответ 1
Это неправильная строка подключения. После того, как вы используете first-first/database-first (EDMX), вы должны использовать строку подключения Entity с ссылкой на файлы метаданных .ssdl,.msl и .csdl. Также имейте в виду, что вы должны создать свою базу данных во время разработки при создании модели из EDMX = вы должны сгенерировать SQL script и выполнить ее для создания базы данных.
Ответ 2
Я предполагаю, что эта ошибка обычно появляется, когда кто-то сначала добавляет EDMX/db в библиотеку классов в решении. Если вы это сделаете, убедитесь, что строка подключения, добавленная в файле App.config в проекте библиотеки классов, доступна в файле web.config или в файле конфигурации exe (так что просто скопируйте/вставьте его там).
Ответ 3
Add this connection string to web config and make changes:
<add name="Entities"
connectionString="
metadata=res://*/EFmodel.csdl|res://*/EFmodel.ssdl|res://*/EFmodel.msl;
provider=System.Data.SqlClient;provider
connection string="
data source=SAI-PC;
initial catalog=OrderDB;
user id=sa;
password=Pass$123;
MultipleActiveResultSets=True;
App=EntityFramework""
providerName="System.Data.EntityClient" />
EFmodel is my .edmx file name.
OrderDB is database name.
Ответ 4
Удалить или прокомментировать это:
//protected override void OnModelCreating(DbModelBuilder modelBuilder)
//{
// throw new UnintentionalCodeFirstException();
//}
И измените строку подключения на допустимую.