【发布时间】:2016-07-08 10:56:08
【问题描述】:
我正在开发一个 ASP.NET 5 应用程序,该应用程序使用 Entity Framework 7 和迁移来更改应用程序的 Microsoft Sql Server 数据库。
当我到达迁移步骤时遇到了一些问题,我想澄清一下实体框架命令 migrations add 和 database update 的作用。
据我了解
> dnx ef migrations add Initial
在名为 Migrations 的文件夹中创建一个以 Initial 结尾的 C# 文件,其中包含将基于应用程序模型类创建表的代码,并且
> dnx ef database update
执行将这些更改添加到数据库的代码。但是在migrations add命令之后,数据库已经创建好了,我运行database update命令时控制台报错,说表已经存在。
从我在不同教程中阅读的内容来看,migrations add 似乎实际上不应该影响数据库,并且当您运行database update 时会发生更改,但看起来情况并非如此.
有人能解释一下每个步骤的作用以及它们如何组合在一起吗?提前致谢!
【问题讨论】:
-
ef migration add 初始不创建数据库,只创建迁移文件。我怀疑您之前创建了一个数据库并对其运行更新,然后您删除了迁移文件并重新创建了它而不删除之前的数据库
-
我在现有数据库上创建模型时遇到了这些问题。我只是手动将迁移的名称添加到 __efhistory 表中。虽然 EF7 侧重于代码优先,但现实情况是许多开发过程都是数据库优先的。
标签: asp.net entity-framework asp.net-core entity-framework-core entity-framework-migrations