2011-01-16 7 views
13

Tôi đã xem một screencast từ MSDN BLOG nói về di chuyển cơ sở dữ liệu.Giới thiệu về Code First Database Evolution (aka Migrations)

Có ai biết khi nào chúng tôi có thể sử dụng tính năng này không? Có vẻ như nó không hoạt động trong CTP5.

Nhân tiện, có cách nào để gộp dữ liệu ban đầu sau khi tôi thay đổi mã lược đồ không?

Đây là những gì tôi đang làm ngay bây giờ, nó xóa tất cả dữ liệu mỗi khi tôi thay đổi mô hình.

DbDatabase.SetInitializer<Context>(
    new DropCreateDatabaseIfModelChanges<Context>()); 
+5

tôi sẽ bỏ phiếu cho bạn chỉ để bạn không có '666' làm danh tiếng của bạn nữa ... điều đó không thể tốt;) –

Trả lời

10

Họ rất có thể có được tính năng di chuyển này trong phiên bản RTM được nhắm mục tiêu trong quý đầu tiên của năm 2011.

Để cư cơ sở dữ liệu với một số dữ liệu ban đầu bạn có thể tạo initializer cơ sở dữ liệu của riêng bạn và có nó kế thừa từ chiến lược mong muốn của bạn (ngay bây giờ chúng tôi có 2 tùy chọn) và sau đó ghi đè Seed phương pháp bên trong nó:

public class MyInitializer : DropCreateDatabaseIfModelChanges<MyContext> 
{ 
    protected override void Seed(InheritanceMappingContext context) 
    {   
     MyEntity entity = new MyEntity() 
     { 
      ... 
     }; 
     context.MyEntities.Add(entity); 
     context.SaveChanges(); 
    } 
} 
+0

Xin cảm ơn! Tôi đang mong chờ tính năng di chuyển này !!! – user469652

+0

Morteza, những gì lắp ráp là DropCreateDatabaseIfModelChanges trong? Tôi đang cố gắng làm theo các hướng dẫn ASP.Net về việc tạo ra các cửa hàng âm nhạc và họ đang sử dụng cùng một cuộc gọi và tôi nhận được một ngoại lệ: – Keith

+0

Rất tiếc, xin lỗi, câu hỏi ngu ngốc. (System.Data.Entity) :) – Keith

0

EF 4.1 Release Candidate đã được ban hành vào tháng Ba và trông giống như Migration này tính năng chưa được bao gồm