Voglio aggiungere alcuni chiarimenti a questa discussione:
Update-Database -TargetMigration:"name_of_migration"
Quello che stai facendo sopra sta dicendo che vuoi eseguire il rollback di tutte le migrazioni FINO A quando rimarrai con la migrazione specificata. Pertanto, se usi GET-MIGRAZIONI e scopri di avere A, B, C, D ed E, allora usando questo comando eseguirai il rollback di E e D per portarti a C:
Update-Database -TargetMigration:"C"
Inoltre, a meno che nessuno possa commentare il contrario, ho notato che è possibile utilizzare un valore ordinale e l'opzione -Target breve (quindi, -Target è uguale a -TargetMigration). Se si desidera ripristinare tutte le migrazioni e ricominciare, è possibile utilizzare:
Update-Database -Target:0
0, sopra, eseguirà il rollback anche della PRIMA migrazione ( questo è un comando distruttivo - assicurati di sapere cosa stai facendo prima di usarlo! ) - qualcosa che non puoi fare se usi la sintassi sopra che richiede il nome di la migrazione di destinazione (il nome della nona migrazione non esiste prima dell'applicazione di una migrazione!). Quindi in quel caso, devi usare il valore 0 (ordinale). Allo stesso modo, se hai applicato le migrazioni A, B, C, D ed E (in quell'ordine), allora l'ordinale 1 dovrebbe fare riferimento ad A, l'ordinale 2 dovrebbe fare riferimento a B e così via. Quindi per eseguire il rollback su B è possibile utilizzare:
Update-Database -TargetMigration:"B"
o
Update-Database -TargetMigration:2
Modifica ottobre 2019:
Secondo questa risposta correlata su una domanda simile, il comando corretto è -Target
per EF Core 1.1 mentre -Migration
per EF Core 2.0.