实体框架7命令澄清 - 迁移添加与数据库更新?

时间:2016-03-21 18:58:16

标签: asp.net entity-framework asp.net-core entity-framework-core ef-migrations

我正在开发一个ASP.NET 5应用程序,该应用程序使用Entity Framework 7进行迁移以更改应用程序的Microsoft Sql Server数据库。

当我到达迁移步骤时,我遇到了一些问题,并且我想澄清实体框架命令migrations adddatabase update做了什么。

这是我的理解

> dnx ef migrations add Initial

在名为 Migrations 的文件夹中创建名为 Initial 的C#文件,其中包含将根据应用程序模型类创建表的代码,

> dnx ef database update

执行将这些更改添加到数据库的代码。但是,在migrations add命令之后,数据库已经创建,并且当我运行database update命令时控制台发出错误,表示表已经存在。

从我在不同教程上看到的内容看来,migrations add实际上不应该影响数据库,并且当您运行database update时会发生更改,但它看起来不一样就像那样。

有人可以解释每个步骤正在做什么以及它们如何组合在一起?提前谢谢!

1 个答案:

答案 0 :(得分:1)

dnx ef migrations add不应该创建数据库。我怀疑在您的应用程序代码中某处调用DbContext.Database.EnsureCreated()会给它带来这种效果。