6

Tôi đã sử dụng EF 5 Code Đầu tiên, thành công, trong ứng dụng của tôi. Tôi có khoảng 40 bảng. Tuy nhiên, tôi đã gặp phải sự cố khiến tôi có thể nhận được Di chuyển để xử lý chính xác. Vì vậy, những gì tôi muốn làm là bằng cách nào đó nói với EF để xử lý các lược đồ hiện tại của cơ sở dữ liệu như là một điểm khởi đầu mới, và bắt đầu quản lý nó từ thời điểm này. Bằng cách này, tôi có thể thay đổi giản đồ cần thiết theo cách thủ công, và sau đó nói với EF về cơ bản bắt đầu lại từ thời điểm này.Entity Framework 5 Code First - Cách "bắt đầu lại"?

Có cách nào tôi có thể thực hiện việc này không? Tôi đoán tôi sẽ phải xóa bảng __MigrationHistory hoặc xóa nội dung của nó. Nhưng tôi không chắc làm thế nào tốt nhất để tiến hành làm điều này.

Trả lời

8

Bạn sẽ có thể làm như sau:

  • Thay đổi cơ sở dữ liệu của bạn bằng tay để phản ánh những thay đổi trong mô hình đó sẽ không được xử lý bởi một sự chuyển đổi. Mọi thứ sẽ hoạt động ngay bây giờ, nhưng cơ sở dữ liệu và hệ thống di chuyển không đồng bộ.

  • Chạy Add-Migration ManuallyUpdatedDatabase -IgnoreChanges. Điều này tạo ra một di chuyển hoàn toàn trống rỗng, vì vậy nó sẽ không thực hiện bất kỳ thay đổi nào đối với cơ sở dữ liệu, nhưng nó sẽ đảm bảo rằng hệ thống biết về các thay đổi thủ công đã được thực hiện. Bằng cách đó, các thay đổi thủ công sẽ không được bao gồm trong lần di chuyển tiếp theo bạn tạo.

  • Chạy Update-Database để áp dụng di chuyển trống.

Từ đây mọi thứ sẽ hoạt động như bình thường. Bạn chỉ có một "liên kết còn thiếu" trong di chuyển của bạn bởi vì bạn đã xử lý một số thay đổi theo cách thủ công.

Các vấn đề liên quan