EF核心数据库更新

时间:2018-03-13 07:03:50

标签: entity-framework-core ef-core-2.0

我们将框架7移动到EF核心2.0。现在我们遇到了一个小问题。

当我们使用Entity Framework 7时,它很容易更新客户端数据库。(update -database)

但是在EF核心中存在一个问题,原因是每次更改我们都要添加迁移,因此在这种情况下我们现在有100个迁移历史记录。

示例:(20180313063924_NewVersion,14689013063934_NewVersion等)

所以当我们更新客户端数据库时,我们必须保留100个迁移历史记录 但我认为这不是生产水平的好方法

无论如何都有解决这个问题。非常感谢你们!

1 个答案:

答案 0 :(得分:1)

嗯,这正是EF和EFCore的工作方式。

每次迁移都代表DbContext / Database上所需的修改,以便对模型的更改有效。因此,如果您有更改,它们将由迁移表示。

一个 - 在我看来 - 不是很干净的解决方案可能是:

  1. 删除当前数据库
  2. 删除整个Migrations目录(有效删除<yourContextName>Snapshot.cs目录中的所有迁移文件和Migrations文件)
  3. 添加新迁移,例如InitialCreate
  4. 结果将只是一个代表当前项目的model / dbcontext状态的迁移。 只有当项目仍然处于开发阶段且没有在任何阶段进行任何部署时,才能实现该方法。

    请注意,我不推荐该解决方案/方法。在我看来,你应该像他们一样离开迁移。

    有关详细信息,请阅读以下内容:

    1. The Model Snapshot In Entity Framework Core
    2. Migration in Entity Framework Core