Tôi đang làm việc trên một dự án sử dụng Entity Framework 4.1 để duy trì các đối tượng khác nhau của chúng tôi cho cơ sở dữ liệu (mã đầu tiên).Entity Framework 4.1 Mô hình hỗ trợ ngữ cảnh đã thay đổi kể từ khi cơ sở dữ liệu được tạo, ngay sau khi tạo DB
Tôi đang thử nghiệm trong Visual Studio với một DB SQL Express cục bộ và máy chủ Jenkins của chúng tôi triển khai mã cam kết với máy chủ thử nghiệm. Khi điều này xảy ra, tôi tạm thời thay đổi chuỗi kết nối cục bộ của mình để trỏ tới máy chủ DB thử nghiệm và chạy thử nghiệm đơn vị để tạo lại cơ sở dữ liệu thử nghiệm sao cho phù hợp với các thực thể mới nhất của chúng tôi, v.v.
Gần đây tôi đã nhận thấy thử nghiệm của mình máy chủ đang đưa ra lỗi này:
Mô hình ủng hộ ngữ cảnh 'EntityFrameworkUnitOfWork' đã thay đổi kể từ khi cơ sở dữ liệu được tạo. Hoặc là tự xóa/cập nhật cơ sở dữ liệu, hoặc gọi Database.SetInitializer với một cá thể IDatabaseInitializer. Ví dụ, chiến lược DropCreateDatabaseIfModelChanges sẽ tự động xóa và tạo lại cơ sở dữ liệu, và tùy chọn tạo hạt giống với dữ liệu mới.
Điều này thường là dấu hiệu cho thấy mã của chúng tôi đã thay đổi và tôi cần chạy thử nghiệm đơn vị để tạo lại cơ sở dữ liệu. Ngoại trừ tôi đã làm điều đó! Tôi không tin rằng có bất cứ điều gì sai trái với quá trình triển khai của chúng tôi - các DLL trên máy chủ thử nghiệm dường như là các phiên bản giống như trong môi trường cục bộ của tôi. Có bất kỳ cài đặt hoặc yếu tố môi trường nào khác có thể gây ra lỗi này về mô hình đã thay đổi kể từ khi cơ sở dữ liệu được tạo không?
Tôi mới ở đây - cảm ơn bạn đã trợ giúp!
Bạn có thể sử dụng phương thức 'System.Data.Entity.Infrastructure.EdmMetadata.TryGetModelHash (YourDbContext)' để lấy ModelHash và thử trên máy tính cục bộ của bạn và trình kiểm tra để xem chúng có khác không? – Marc
Bạn có chạy công cụ tùy chỉnh để tạo lại ngữ cảnh hoặc POCO sau khi bạn tạo lại cơ sở dữ liệu không? –
@Marc Có các băm dường như khác nhau. – DaveBeta