由于某种原因,我的数据库没有被创建,我没有收到任何错误。我正在使用“SQL Server”
在global.asax.ca文件中初始化数据库:
protected void Application_Start(object sender, EventArgs e)
{
//BREAKPOINT HITS. GOOD
Database.SetInitializer<MenuManagerContext>(new MenuManagerServiceInitializer());
}
...
public class MenuManagerServiceInitializer : CreateDatabaseIfNotExists<MenuManagerContext>
{
//BREAKPOINT NEVER HITS. BAD
protected override void Seed(MenuManagerContext context)
{
context.Chains.Add(...);
context.SaveChanges();
base.Seed(context);
}
}
为什么没有创建数据库的想法?我甚至没有收到错误,所以很难说出错了......
答案 0 :(得分:8)
Database.SetInitializer
不会导致创建数据库。它只设置初始化策略。
如果您是第一次使用上下文,则会创建数据库,例如通过发出任何查询,或者将对象附加或添加到上下文,等等。
答案 1 :(得分:1)
调用通过上下文返回数据的Action
public ActionResult Index()
{
//should trigger call to MenuManagerServiceInitializer.Seed()
return View(new MenuManagerContext().Chains.ToList())
}