我正在开发一个 ASP.NET 5 应用程序,该应用程序使用具有迁移功能的实体框架 7 来更改应用程序的Microsoft Sql Server 数据库。
当我到达迁移步骤时,我遇到了一些问题,我想澄清实体框架命令migrations add
和database update
做什么。
我的理解是
> dnx ef migrations add Initial
在名为"迁移"的文件夹中创建一个以名称 Initial 结尾的 C# 文件,其中包含将基于应用程序模型类创建表的代码,以及
> dnx ef database update
执行将这些更改添加到数据库的代码。但是,在 migrations add
命令之后,数据库已经创建,控制台在我运行 database update
命令时给出错误,说表已经存在。
从我在不同教程中读到的内容来看,似乎migrations add
实际上不应该影响数据库,并且当您运行database update
时会发生更改,但看起来并非如此。
有人可以解释一下这些步骤中的每一个都在做什么以及它们如何组合在一起吗?提前感谢!
dnx ef migrations add
不应该创建数据库。我怀疑DbContext.Database.EnsureCreated()
在您的应用程序代码中的某个地方被调用,从而产生了这种效果。