Я хочу додати деякі пояснення до цієї теми:
Update-Database -TargetMigration:"name_of_migration"
То, що ви робите вище, говорить про те, що ви хочете відмовитись від усіх міграцій, доки вам не вказано міграцію. Таким чином, якщо ви використовуєте GET-MIGRATIONS і виявите, що у вас є A, B, C, D і E, то за допомогою цієї команди ви зможете відкатати E і D, щоб перейти до C:
Update-Database -TargetMigration:"C"
Крім того, якщо хтось не може прокоментувати протилежне, я помітив, що ви можете використовувати порядкове значення і короткий перемикач -Target (таким чином, -Target є таким же, як -TargetMigration). Якщо ви хочете відкатати всі міграції та почати спочатку, ви можете скористатися:
Update-Database -Target:0
0, вище, може відкатати навіть ПЕРШУ міграцію ( це деструктивна команда - будьте впевнені, що ви знаєте, що ви робите, перш ніж її використовувати! ) - те, чого ви не можете зробити, якщо використовувати синтаксис вище, що вимагає імені цільова міграція (ім'я 0-ї міграції не існує до того, як буде застосовано міграцію!). Тож у такому випадку вам потрібно використовувати значення 0 (порядкове). Так само, якщо ви застосували міграції A, B, C, D і E (у такому порядку), то порядковий 1 повинен посилатися на A, порядковий 2 повинен позначати B, і так далі. Отже, для відкату до B ви можете скористатися будь-яким:
Update-Database -TargetMigration:"B"
або
Update-Database -TargetMigration:2
Редагувати жовтень 2019:
Відповідно до цієї відповіді на аналогічне запитання, правильна команда є -Target
для EF Core 1.1, тоді як -Migration
для EF Core 2.0.