繁体   English   中英

模型更改后更新数据库 - 实体框架7

[英]Update Database after Model Changes - Entity Framework 7

我使用最新的ASP.NET5 MVC 6实体框架7创建了一个应用程序并使用设置迁移

dnx . ef migration add Initial
dnx . ef migration apply

这有效,但是当我对模型进行更改时,数据库不会更新。 我想在运行程序时更改模型后自动更新数据库。

我的研究只向我指出了似乎不适合实体框架7的旧信息。

我目前的代码:

 public ApplicationDbContext(): base()
   {

        if (!_created)
        {

             Database.AsRelational().ApplyMigrations();
             _created = true;         
        }
  }

有人能指出我正确的方向吗?

我相信它可以用来做这样的事情:

Database.SetInitializer(new DropCreateDatabaseAlways<MyContext>());

您必须从命令行手动运行EF7迁移,或者从代码调用Database.Migrate,EF7中没有任何自动化(经过深思熟虑的决定),并且在更改模型后,创建新的迁移

在创建迁移和更新数据库结构的过程之间似乎存在一些混淆。

在EF7中,您无法再自动生成迁移(当前数据库结构与实体定义之间的差异)。 要在命令行中使用“迁移添加”命令完成此操作。

但是,更新数据库的结构仍然可以通过代码完成。 这是使用dbContext.Database.Migrate()方法完成的。 您可以在启动时将其连接起来,这样当您的应用程序首次启动时,它将确保您的数据库已更新为当前版本的应用程序。

所以你的开发工作流程可以是:

  1. 修改实体定义
  2. 运行“迁移添加”命令
  3. 启动你的应用*

    • 上面的数字3假设你已经在你的Startup中连接了上面提到的Migrate()调用。 否则,您还必须手动执行“数据库更新”命令。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM