Cơ sở dữ liệu sẽ chỉ được tạo khi bạn thực sự sử dụng ngữ cảnh.
Nếu bạn đã ghi đè phương thức Seed trong trình khởi tạo của mình như sau:
protected override void Seed(MyContext context){...}
Mã Seed sẽ chỉ chạy khi bạn sử dụng một phiên bản của MyContext.
Đó là lý do tại sao nó hoạt động khi bạn sử dụng
var ctx = new MyContext();
ctx.Database.Initialize(true);
Bạn luôn có thể buộc nó tạo bằng cách sử dụng ngữ cảnh của bạn trong phương thức Application_Start () trong Global.asax.cs như:
System.Data.Entity.Database.SetInitializer(new MyInitializer());
MyContext db = new MyContext();
db.Database.Initialize(true);
//or even something like db.Users.Count();
Hoặc nó sẽ được tạo sau này khi bạn sử dụng ngữ cảnh của mình. Có thể nó đã ngừng hoạt động vì bạn đã xóa một số mã sẽ sử dụng ngữ cảnh khi khởi động ứng dụng.