2016-04-19 2 views
0

У меня есть две миграций в моем ASP.NET MVC 1 ядро ​​проекта следующим образом:ASP.NET Ядро 1 EF - обновление миграции в последний

Migration VS2015

V1 миграция начальная миграция с 1 столом, Рестораны.

Я добавил миграцию v2 только сейчас, после добавления Asp.NET Identity к моему проекту и хочу обновить мою БД до этой последней миграции, но я получаю сообщение об ошибке, что таблица уже существует.

dnx commands

В таблице Ресторан действительно существует, но я подумал, что было бы просто сделать раскрывающееся создать и добавить новые таблицы, а также. Ни одна из новых таблиц не существует. Я использовал следующие команды для создания: DNX Е.Ф. миграции добавить v2 , а затем обновить: DnX обновления базы данных эф, я даже пытался указать v2, но она продолжает пытаться перенести только начальную версию.

with migrations specified

Как получить вторую миграцию, чтобы обновить свои существующую базу данных?

UPDATE: я добавил третью миграцию, удалил базу данных и заново пропустил команду обновления миграции - на этот раз только V1 и V2 побежали, V3 - нет. что дает?

+0

Как-то он не знал, что первая миграция была применена. Проще всего было бы, вероятно, прокомментировать код Up() для существующих объектов, так как похоже, что вы делаете учебник. –

+0

Наверное, я могу прокомментировать код «Рестораны», но любая идея, как этого не сделать? Только для справок в будущем? – Reza

+0

Это EF 6? Не уверен, почему он не применил первую миграцию. Вы можете проверить таблицу __MigrationHistory в своей базе данных и посмотреть, есть ли там записи - это то, что EF проверяет, чтобы увидеть, что было применено. Вы также можете создать сценарий, чтобы увидеть, что EF пытается сделать. –

ответ

0

Вам необходимо проверить таблицу «dbo .__ MigrationHistory», если она существует в вашей базе данных. Если его нет, просто удалите существующие миграции. Добавьте новую миграцию, а затем обновите базу данных. Он будет создавать и синхронизировать вашу базу данных с моделью.

Если вы удаляете базу данных, вы также удаляете все существующие миграции. И добавьте новую миграцию. Вы все еще сталкиваетесь с такой же проблемой, затем откройте свой класс миграции и найдите таблицу «Ресторан». Постарайтесь выяснить:

  • он добавляется дважды или не
  • он добавляется только один раз, закомментируйте это и повторно запустить команду обновления базы данных, чтобы увидеть следующую ошибку.

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

  • Нет связанных вопросов^_^