EF7 从添加迁移操作中排除 Class/DbSet
EF7 Exclude Class/DbSet From Add Migration Operation
(版本 7.0.0-beta5)
有没有办法将 class 或 DbSet
排除在 migration add
命令评估之外?
我正在构建的数据库将包含一些从另一个环境复制的表。它们需要包含在 DbContext 中,以便可以查询和加入它们,但绝不应该为它们生成迁移。
这种情况下的最佳做法是什么?
您可以从迁移文件中手动删除创建或更改。
从 beta6 开始,最适合我的是确保 DbContextModelSnapshot
包含复制实体的映射。
映射实体后,迁移脚手架过程会将模型快照与实体进行比较以确定是否有更改。由于实体 类 与模型快照匹配,因此不会生成与这些实体相关的迁移。当 DbContextModelSnapshot
重新生成并覆盖时,它保持相同的映射,因为没有任何变化。
而且在未来可能会有一个功能来帮助解决这个问题,正如本期中所见 - 虽然没有承诺,但不是第一次发布。
https://github.com/aspnet/EntityFramework/issues/2725
(版本 7.0.0-beta5)
有没有办法将 class 或 DbSet
排除在 migration add
命令评估之外?
我正在构建的数据库将包含一些从另一个环境复制的表。它们需要包含在 DbContext 中,以便可以查询和加入它们,但绝不应该为它们生成迁移。
这种情况下的最佳做法是什么?
您可以从迁移文件中手动删除创建或更改。
从 beta6 开始,最适合我的是确保 DbContextModelSnapshot
包含复制实体的映射。
映射实体后,迁移脚手架过程会将模型快照与实体进行比较以确定是否有更改。由于实体 类 与模型快照匹配,因此不会生成与这些实体相关的迁移。当 DbContextModelSnapshot
重新生成并覆盖时,它保持相同的映射,因为没有任何变化。
而且在未来可能会有一个功能来帮助解决这个问题,正如本期中所见 - 虽然没有承诺,但不是第一次发布。 https://github.com/aspnet/EntityFramework/issues/2725