我有点失落,我应该如何让实体框架与自动迁移一起工作。我想:MVC3代码优先:迁移并生成数据库
- 数据库的时候它不存在
- 的数据库中自动创建的自动更新,当模型改变
对于我使用DbMigrator后者。这是相当缓慢的,所以我不希望运行它的每一个要求,也是我在同一应用程序的多个数据库,所以它不能在的Application_Start走这就是为什么我把它在在session_start这样的:
if (Session["started"] == null)
{
// this takes care of any database updates that might be necessary.
MigrationConfiguration configuration = new MigrationConfiguration();
DbMigrator migrator = new DbMigrator(configuration);
List<string> pm = migrator.GetPendingMigrations().ToList();
if (pm.Count > 0)
{
migrator.Update();
}
}
else
{
Session["started"] = "started";
}
不知道这是否是正确的方式来执行它,但它似乎工作,但它不存在时实际上生成数据库。它给了我一个“无法打开数据库‘我有分贝
’由登录请求”这与以下前的工作:
Database.SetInitializer<DbContext>(new InitializerIfModelChange());
这降低了数据库,并生成种子数据是罚款当数据库不存在,但它也是数据库更改时触发器(在这种情况下,我想DbMigrator来处理它)这是在Application_Start之前,但我不知道如何处理它。我担心它会与DbMigrator冲突。我如何设定这一切,以实现前面描述的两件事情?