Je veux ajouter quelques clarifications à ce fil:
Update-Database -TargetMigration:"name_of_migration"
Ce que vous faites ci-dessus, c'est que vous souhaitez annuler toutes les migrations JUSQU'À ce que vous ayez la migration spécifiée. Ainsi, si vous utilisez GET-MIGRATIONS et que vous trouvez que vous avez A, B, C, D et E, l'utilisation de cette commande annulera E et D pour vous amener à C:
Update-Database -TargetMigration:"C"
De plus, à moins que quelqu'un ne puisse commenter le contraire, j'ai remarqué que vous pouvez utiliser une valeur ordinale et le commutateur -Target court (ainsi, -Target est identique à -TargetMigration). Si vous souhaitez annuler toutes les migrations et recommencer, vous pouvez utiliser:
Update-Database -Target:0
0, ci-dessus, annulerait même la PREMIÈRE migration ( il s'agit d'une commande destructrice - assurez-vous de savoir ce que vous faites avant de l'utiliser! ) - quelque chose que vous ne pouvez pas faire si vous utilisez la syntaxe ci-dessus qui nécessite le nom de la migration cible (le nom de la 0e migration n'existe pas avant qu'une migration ne soit appliquée!). Donc, dans ce cas, vous devez utiliser la valeur 0 (ordinale). De même, si vous avez appliqué les migrations A, B, C, D et E (dans cet ordre), l'ordinal 1 doit faire référence à A, l'ordinal 2 doit faire référence à B, etc. Donc, pour revenir à B, vous pouvez utiliser soit:
Update-Database -TargetMigration:"B"
ou
Update-Database -TargetMigration:2
Modifier octobre 2019:
Selon cette réponse connexe sur une question similaire, la commande correcte est -Target
pour EF Core 1.1 alors qu'elle l'est -Migration
pour EF Core 2.0.