Подтвердить что ты не робот

Сначала модель с 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"/>

Примечание. Я добавил исходный каталог позже, чтобы попробовать, если он будет работать, но он был точно таким же.

4b9b3361

Ответ 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=&quot;
data source=SAI-PC;
initial catalog=OrderDB;
user id=sa;
password=Pass$123;
MultipleActiveResultSets=True;
App=EntityFramework&quot;" 
providerName="System.Data.EntityClient" />

EFmodel is my .edmx file name.

OrderDB is database name.

Ответ 4

Удалить или прокомментировать это:

//protected override void OnModelCreating(DbModelBuilder modelBuilder)
//{
//    throw new UnintentionalCodeFirstException();
//}

И измените строку подключения на допустимую.