2012-02-14 26 views

Trả lời

9

A nice walk-through cho điều này được đăng tải ở đây: http://thedatafarm.com/data-access/using-ef-4-3-code-first-migrations-with-an-existing-database/

Một sự thay đổi tôi sẽ đề nghị chỉ đơn giản là nhận xét ra mã trong các phương pháp Up and Down cho đến khi bạn đã triển khai việc di chuyển. Sau đó, bạn có thể bỏ ghi chú mã và điều đó sẽ cho phép bạn tạo một cơ sở dữ liệu mới nếu bạn cần sau này.

+0

điểm tốt, cảm ơn! – enamrik

+0

Đây là 404 ngay bây giờ –

+0

Thông tin thêm tại đây http://tinyurl.com/q2hepmw – Spock

8

Vì vậy, có vẻ như những gì tôi đang tìm kiếm là Codebased Migrations được kích hoạt khi tôi đặt AutomaticMigrationsEnabled = false. Các mô hình của tôi đã được tạo từ một cơ sở dữ liệu hiện có. Để kích hoạt di chuyển, tất cả những gì tôi cần làm là cho phép di chuyển (Enable-Migrations), tạo một tệp di chuyển mới bằng cách sử dụng Add-Migration, xóa nó (các mô hình của tôi đã có trong cơ sở dữ liệu vì vậy tôi không muốn EF thử và tạo chúng) và triển khai điều đó. Để triển khai, tôi đã thêm thông tin sau vào tệp Global.asax của mình:

protected void Application_Start() 
{ 
     var config= new Configuration(); 
     var migrator = new DbMigrator(config); 
     migrator.Update(); 
} 

Một bảng mới __MigrationHistory được tạo và bản ghi di chuyển mới được tạo trong đó. Bản ghi di chuyển mới này có băm của các mô hình của tôi nên bây giờ mọi thay đổi đối với mô hình của tôi có thể được viết cho tôi trong các lần di chuyển trong tương lai với EF.

Để kiểm tra, tôi đã tạo một tệp di chuyển khác (Add-Migration), tôi đã thêm thuộc tính mới vào mô hình, chạy Add-Migrations đã viết kịch bản trường mới và sau đó triển khai ứng dụng của tôi. Việc di chuyển đã chạy như mong đợi.

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