【问题标题】:Entity Framework 7 commands clarification - migrations add vs. database update?Entity Framework 7 命令说明 - 迁移添加与数据库更新?
【发布时间】:2016-07-08 10:56:08
【问题描述】:

我正在开发一个 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 时会发生更改,但看起来情况并非如此.

有人能解释一下每个步骤的作用以及它们如何组合在一起吗?提前致谢!

【问题讨论】:

  • ef migration add 初始不创建数据库,只创建迁移文件。我怀疑您之前创建了一个数据库并对其运行更新,然后您删除了迁移文件并重新创建了它而不删除之前的数据库
  • 我在现有数据库上创建模型时遇到了这些问题。我只是手动将迁移的名称添加到 __efhistory 表中。虽然 EF7 侧重于代码优先,但现实情况是许多开发过程都是数据库优先的。

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


【解决方案1】:

dnx ef migrations add 不应创建数据库。我怀疑DbContext.Database.EnsureCreated() 在您的应用程序代码中被调用,从而产生这种效果。

【讨论】:

  • 我的DbContext 课程中有这行。我已将其删除,并且命令按应有的方式工作。谢谢!
猜你喜欢
  • 2016-05-08
  • 1970-01-01
  • 2011-01-12
  • 2015-11-07
  • 2019-01-28
  • 2017-02-06
  • 2021-08-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多