【问题标题】:EF7 Exclude Class/DbSet From Add Migration OperationEF7 从添加迁移操作中排除类/DbSet
【发布时间】:2015-10-16 06:42:40
【问题描述】:

(版本 7.0.0-beta5)

有没有办法将一个类或DbSet 排除在migration add 命令评估中?

我正在构建的数据库将包含一些从另一个环境复制的表。它们需要包含在 DbContext 中,以便可以查询和加入它们,但绝不应该为它们生成迁移。

在这种情况下最好的做法是什么?

【问题讨论】:

    标签: entity-framework-migrations entity-framework-core


    【解决方案1】:

    从 beta6 开始,最适合我的是确保 DbContextModelSnapshot 包含复制实体的映射。

    一旦实体被映射,迁移脚手架过程会将模型快照与实体进行比较,以确定是否有更改。由于实体类与模型快照匹配,因此不会生成与这些实体相关的迁移。当DbContextModelSnapshot 被重新生成和覆盖时,它保持相同的映射,因为没有任何变化。

    在未来可能会有一个功能来帮助解决这个问题,正如在这个问题中所看到的 - 虽然没有承诺,而且不是第一个版本。 https://github.com/aspnet/EntityFramework/issues/2725

    【讨论】:

      【解决方案2】:

      您可以从迁移文件中手动删除创建或更改。

      【讨论】:

      • 是的,将迁移文件视为脚手架——您拥有输出。它们中的操作只是您尝试创建或更改的内容的“最佳猜测”。
      • 是的,但我希望能够避免这种情况。在开发过程中,会有很多迁移,在多开发者环境中,这会变得乏味且容易出错。
      • 我们一直这样做,从来没有造成任何问题
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-21
      • 2015-09-27
      • 2016-05-10
      • 2016-01-27
      • 1970-01-01
      • 2015-11-05
      相关资源
      最近更新 更多