2016-07-12 5 views
2

Этот сложный простой кажущийся вопрос был трудно найти ответ на Google и SO. У меня есть проект ASP.NET MVC, который я использую Entity Framework с кодовым подходом. Я пошел добавить еще одну миграцию, но когда я запустил команду Add-Migration MigrationName, я ошибся MigrationName.Удалить миграцию кода перед обновлением базы данных

Я еще не пробежал Update-Database. Было бы достаточно переименовать имя класса миграции, которое было автоматически создано? Или мне нужно сначала удалить миграцию и добавить новый с правильным именем? Если да, то как мне это сделать? Просто удалите автоматически созданный класс миграции или еще больше?

+2

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

+0

Большое спасибо @DavidG! Отправьте это как ответ, чтобы я мог отметить его как принятый. –

+0

@DavidG не просто удалит класс, а не приведет к изменению изменений в другой попытке миграции? Как изменения от миграции уже являются частью моментального снимка? Или это зависит от того, какую версию EF вы используете? – Kritner

ответ

2

Хотя вы можете переименовать их, я думаю, вы можете придумать некоторые проблемы в отношении файла *.resx, который создается, поскольку он содержит ZIP-файл EDMX вместе с некоторыми материалами именования. Самый простой способ - удалить корневой класс миграции (который также удалит файлы migration.Designer.cs и migration.resx) и воссоздает его.

Если вы уже побежал Update-Database команду, вы можете достичь его прокаткой это обратно:

Update-Database -TargetMigration NameOfPreviousMigration 

(вам может понадобиться добавить -Force если откат будет уничтожить данные)

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