Saya ingin menambahkan beberapa klarifikasi ke utas ini:
Update-Database -TargetMigration:"name_of_migration"
Apa yang Anda lakukan di atas adalah mengatakan bahwa Anda ingin mengembalikan semua migrasi SAMPAI Anda tinggal dengan migrasi yang ditentukan. Jadi, jika Anda menggunakan MENDAPATKAN MIGRASI dan Anda menemukan bahwa Anda memiliki A, B, C, D, dan E, maka menggunakan perintah ini akan mengembalikan E dan D untuk membawa Anda ke C:
Update-Database -TargetMigration:"C"
Juga, kecuali ada yang bisa berkomentar sebaliknya, saya perhatikan bahwa Anda dapat menggunakan nilai ordinal dan pendek -Target beralih (dengan demikian, -Target adalah sama dengan -TargetMigrasi). Jika Anda ingin mengembalikan semua migrasi dan memulai kembali, Anda dapat menggunakan:
Update-Database -Target:0
0, di atas, akan mengembalikan bahkan migrasi PERTAMA ( ini adalah perintah yang merusak - pastikan Anda tahu apa yang Anda lakukan sebelum Anda menggunakannya! ) - sesuatu yang tidak dapat Anda lakukan jika Anda menggunakan sintaks di atas yang memerlukan nama migrasi target (nama migrasi ke-0 tidak ada sebelum migrasi diterapkan!). Jadi dalam hal ini, Anda harus menggunakan nilai 0 (ordinal). Demikian juga, jika Anda telah menerapkan migrasi A, B, C, D, dan E (dalam urutan itu), maka ordinal 1 harus merujuk ke A, ordinal 2 harus merujuk ke B, dan seterusnya. Jadi untuk mengembalikan ke B Anda dapat menggunakan:
Update-Database -TargetMigration:"B"
atau
Update-Database -TargetMigration:2
Edit Oktober 2019:
Menurut jawaban terkait ini pada pertanyaan serupa, perintah yang benar adalah -Target
untuk EF Core 1.1 sementara -Migration
untuk EF Core 2.0.