5

Tôi đang làm việc với Code First Migrations (Entity Framework 4.3) và tôi muốn nhận phiên bản nhị phân nén của mô hình hiện tại, để tôi có thể so sánh nó với mô hình mới nhất được lưu trữ trong bảng __MigrationHistory (hoặc cái tôi đã lưu trữ trong một tệp văn bản).Các mô hình nén được lưu trữ trong bảng EF 4.3 Code First Migration __MigrationHistory được tạo ra như thế nào?

Có phương pháp EdmMetadata.TryGetModelHash(), nhưng được đánh dấu là không dùng nữa và tôi muốn tránh nó nếu có thể (vì lý do chứng minh trong tương lai).

Tôi làm như thế nào dưới EF 4.3?

Chỉnh sửa: Từ điều tra thêm một chút và thông tin trong Pawel's answer Tôi đã tìm ra trường này không còn lưu trữ băm mà là biểu diễn nhị phân nén của mô hình. Đây là thứ tôi đang cố gắng tạo ra.

Trả lời

8

__MigrationHistory bảng không còn chứa hàm băm của mô hình nữa. Thay vào đó, nó bây giờ chứa mô hình ở dạng nén. Ngoài ra, xác minh xem mô hình đã thay đổi hay không còn dựa vào việc chỉ so sánh giá trị băm kể từ khi Di chuyển cần phải "biết" những gì đã thay đổi và thay đổi như thế nào.

EdmMetadata là bảng đã được sử dụng trước khi di chuyển được tích hợp với Entity Framowork trong 4.3/5.0 và sẽ không được tạo trong cơ sở dữ liệu được tạo bởi EF 4.3+. Bạn có thể tìm thấy một số chi tiết bổ sung tại đây: http://blog.oneunicorn.com/2012/01/13/ef-4-3-beta-1-what-happened-to-that-edmmetadata-table/

+0

Cảm ơn, ngay sau khi tôi đăng này, tôi nhận ra trường 'Model' thực sự lưu trữ dữ liệu nhị phân thay vì băm, vì vậy điều này xác nhận sự nghi ngờ của tôi. Tuy nhiên nó vẫn không thực sự trả lời câu hỏi về cách tôi sẽ tạo * một phiên bản nén tương thích của mô hình của tôi — mặc dù +1 cho một số thông tin hữu ích. –

+1

Giải nén mô hình bằng zip/gzip sẽ cung cấp cho bạn tệp edmx. – Pawel

+0

Vậy làm thế nào tôi có thể tạo ra điều đó - theo như tôi biết không có tập tin 'edmx' nào có liên quan khi sử dụng phương pháp Code First? –

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