0

Я очень новичок в MVC, пытаясь расширить свои знания asp.net после почти 6 лет работы с веб-формами.Обновить модель в ASP.NET MVC 3

MVC действительно абстрактный для меня до сих пор, но то, что мне нравится, - это чистая кодировка. Я читаю книгу «Pro ASP.NET MVC 3 Framework», и теперь я застрял в какой-то момент, и я не знаю, как продолжать честно.

Здесь ошибка я получаю:

модель поддержав контекст «» EfDbContext изменилось с тех пор была создана база данных. Рассмотрите возможность использования First First Migrations для обновления базы данных.

Это случается после того, как я попробовал обновить один Продукт. Страница отправлена ​​назад, но ничего не обновилось в БД.

Просмотр в Интернете Я нашел это временное решение, поставив эту строку в файле global.asax, решив проблему: Database.SetInitializer<SportsStore.Domain.Concrete.EFDbContext>(null); , но теперь появляются пустые страницы, а страницы заполняются данными.

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

+0

удалите базу данных и повторите ввод кода. посмотрим, что произойдет. – DarthVader

+0

Удаление базы данных постоянно через студию управления сервером sql, что вы имеете в виду? – Laziale

ответ

0

Есть много блогов и статей в Интернете, объясняющих миграции, я бы использовал следующие две ссылки в качестве ссылки. Короче говоря, вы изменили свою модель, но таблицы в вашей базе данных еще не обновлены. Вы можете либо удалить таблицы в своей базе данных, либо разрешить EF воссоздать их, отменить изменения в своих моделях или (только MVC 4?) Запустить «миграцию», что более или менее причудливо говорит о том, что разрешить EF создайте SQL-скрипт для обновления таблиц SQL в соответствии с текущей версией вашей модели.

http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-code-based-migrations-walkthrough.aspx

http://coding.abel.nu/2012/03/ef-migrations-command-reference/

+0

Я уже проверил 1-й пример, и вот что я получил: База данных целей: «SportsStore» (DataSource: USER-PC \ SQLR2, Provider: System.Data.SqlClient, Origin: Configuration). Отсутствие ожидающих миграции на основе кода. Применение автоматической миграции: 201209041417142_AutomaticMigration. Автоматическая миграция не применяется, так как это приведет к потере данных. – Laziale

+0

Вы можете запустить Update-Database -Script -Force, чтобы получить копию SQL-скрипта. Это должно значительно облегчить определение проблемы, с которой она сталкивается во время попытки миграции. –

+0

Также следует отметить, что у других возникают проблемы с командой «Enable-Migrations», чтобы убедиться, что у вас установлена ​​последняя EntityFramework, а также новейшая NuGet для визуальной студии. – maguy

0

Использование кода первой базы данных содержит таблицу контрольных сумм для отслеживания изменения ваших классов (называемых EdmMetaData), и ваша ошибка показывает, что Entity Framework обнаружила такое изменение. Если вы хотите обработать его вручную, удалите указанную таблицу и обновите базу данных вручную, чтобы соответствовать спецификациям класса.

Другой способ, как вы упомянули, позволить фреймворку удалять и воссоздавать измененные таблицы.

Для получения подробного объяснения и демонстрации см. Главу 4 в Pluralsight video tutorial.

Смежные вопросы