实体框架/ ASP网络核心2.0 - 为某些环境添加迁移,但不为其他环境添加迁移

时间:2018-01-27 19:52:19

标签: c# asp.net entity-framework

我在asp net core 1.0上创建了我的api的三个上下文,然后我改为2.0。在转换之后,我需要在新的sql server实例中创建我的数据库和表。我用实体框架更新了数据库,一切都按预期工作。现在我使用与其他三个相同的模式创建了第四个上下文(它基本上是除了pocos之外的其中一个的副本)并且我收到此错误消息:

  

无法创建类型为' MyFourthContext'的对象。添加一个   实施' IDesignTimeDbContextFactory< MyFourthContext>'至   该项目,或参见https://go.microsoft.com/fwlink/?linkid=851728   在设计时支持其他模式。

我已经更新了我现有的一个上下文并更新了db而没有错误。

是否有一些我缺少的配置,是在我需要更新的asp net core 1.0中创建的?我已经看到所有的帖子都提示,如错误信息所述,实现IDesignTimeDBContextFactory,但这看起来不那么hacky并且感觉不对,因为我可以让我的其他语境无问题。我也按照其他人的建议采用了in this link步骤。

所以我想,总结一下,我有两个问题:

  1. 为什么添加迁移适用于较旧的上下文而不适用于新的上下文。
  2. 如何在不实施我不需要的任何内容的情况下添加新迁移。
  3. 提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我自己解决了这个问题。我创建原始上下文已经有一段时间了,我只需要在Startup.ConfigureServices()中添加一个新的服务声明。

以为我会回答这个问题以防其他人遇到同样的问题。