Tôi muốn thêm một số làm rõ cho chủ đề này:
Update-Database -TargetMigration:"name_of_migration"
Những gì bạn đang làm ở trên nói rằng bạn muốn khôi phục tất cả các lần di chuyển UNTIL mà bạn còn lại với việc di chuyển được chỉ định. Do đó, nếu bạn sử dụng GET-MIGRATION và bạn thấy rằng bạn có A, B, C, D và E, thì sử dụng lệnh này sẽ khôi phục E và D để đưa bạn đến C:
Update-Database -TargetMigration:"C"
Ngoài ra, trừ khi bất kỳ ai có thể nhận xét ngược lại, tôi nhận thấy rằng bạn có thể sử dụng giá trị thứ tự và công tắc Mục tiêu ngắn (do đó, -Target giống như -TargetMigration). Nếu bạn muốn khôi phục tất cả các lần di chuyển và bắt đầu lại, bạn có thể sử dụng:
Update-Database -Target:0
0, ở trên, sẽ khôi phục ngay cả di chuyển FIRST ( đây là lệnh phá hoại - hãy chắc chắn bạn biết bạn đang làm gì trước khi sử dụng nó! ) - điều bạn không thể làm nếu bạn sử dụng cú pháp ở trên yêu cầu tên của di chuyển đích (tên của di chuyển thứ 0 không tồn tại trước khi di chuyển được áp dụng!). Vì vậy, trong trường hợp đó, bạn phải sử dụng giá trị 0 (thứ tự). Tương tự như vậy, nếu bạn đã áp dụng các lần di chuyển A, B, C, D và E (theo thứ tự đó), thì thứ tự 1 nên tham khảo A, thứ 2 nên tham khảo B, v.v. Vì vậy, để quay trở lại B, bạn có thể sử dụng:
Update-Database -TargetMigration:"B"
hoặc là
Update-Database -TargetMigration:2
Chỉnh sửa tháng 10 năm 2019:
Theo câu trả lời liên quan này cho một câu hỏi tương tự, lệnh chính xác là -Target
dành cho EF Core 1.1 trong khi đó là -Migration
dành cho EF Core 2.0.