Tôi đã sử dụng Entity Framework (5.0) trong một thời gian trong một dự án (ASP.NET MVC trong VS2012 Express). Ngay bây giờ, mặc dù, tôi không còn có thể thêm di chuyển.Khuôn khổ thực thể: Thêm di chuyển không thành công với Không thể cập nhật cơ sở dữ liệu
PM > Add-Migration -projectName MyProject.DAL TestMigration
Unable to update database to match the current model because there are pending changes and automatic migration is disabled. Either write the pending model changes to a code-based migration or enable automatic migration. Set DbMigrationsConfiguration.AutomaticMigrationsEnabled to true to enable automatic migration.
Tôi không biết nếu điều này mang đến cho bất kỳ đầu mối nhưng 'Không thể ..." text được hiển thị trong màu đỏ.
Tôi đã cố gắng để cho phép di chuyển tự động (mà làm cho không có ý nghĩa như tôi cố gắng để viết các thay đổi mô hình đang chờ xử lý để di trú dựa trên mã) và kết quả trong việc di chuyển yêu cầu trong cơ sở dữ liệu. Cơ sở dữ liệu được tạo lại (đến lần di chuyển trước đó) nhưng khi tôi cố gắng sử dụng Add-Migratio n Tôi vẫn gặp lỗi "Không thể cập nhật ..".
Sửa
Tôi đã thử các tham số -force nhưng không có sự khác biệt.
Nội dung của lớp cấu hình của tôi (tôi không thay đổi bất cứ điều gì sau khi di cư trước):
public Configuration()
{
AutomaticMigrationsEnabled = false;
}
protected override void Seed(Bekosense.DAL.Context.BekosenseContext context)
{
context.Database.ExecuteSqlCommand(Properties.Resources.TriggerAlertMessageDrop);
context.Database.ExecuteSqlCommand(Properties.Resources.TriggerAlertMessageCreate);
context.Database.ExecuteSqlCommand(Properties.Resources.TriggerAlertMessageSentDrop);
context.Database.ExecuteSqlCommand(Properties.Resources.TriggerAlertMessageSentCreate);
context.Database.ExecuteSqlCommand(Properties.Resources.AddDbUsers);
}
Sửa 2 tôi phát hiện ra rằng tôi có thể làm một add-di cư khi tôi nhận xét dòng sau trong DbContext của tôi:
//Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext, Configuration>());
khi tôi để dòng trên hoạt động và nhận xét mọi thứ trong tệp Cấu hình, nó vẫn không hoạt động. Tại sao dòng Database.SetInitializer lại gây ra hành vi lạ này?
Bạn có thể xin vui lòng gửi tập tin cấu hình của bạn cho sự di cư? – IronMan84
Bạn đã thử tham số-force? –
tôi đã có cùng một vấn đề, câu trả lời của swapneel dưới đây làm việc cho tôi mặc dù nó là một chút cực đoan. may mắn thay tôi đang ở giai đoạn đầu vì vậy nó không phải là quá lớn một thỏa thuận –