为不同项目中的上下文项目启用迁移

时间:2015-11-19 13:28:18

标签: c# entity-framework ef-code-first entity-framework-6

我正在跑步:

enable-migrations -ContextProjectName CC.Data -StartUpProjectName CC.Web -ContextTypeName CC.Data.CcDataContext -ProjectName CC.Plugin.MyPlugin -Force -Verbose

这会在名为CC.Plugin.MyPlugin.Migrations的{​​{1}}中创建配置文件,但是当它完成时会抛出此错误:

  

迁移配置类型   没有找到'CC.Plugin.MyPlugin.Migrations.Configuration'   汇编'CC.Plugin.MyPlugin'。

我不明白它是如何找不到的,因为它只是在那里添加它。 congif文件如下所示:

Configuration.cs

看起来不错。

有什么想法吗?

编辑:这似乎是链接同一解决方案中项目的引用的问题。一旦我从解决方案链接中删除了这些引用,而是通过浏览并指向DLL,它就开始工作了。

1 个答案:

答案 0 :(得分:0)

编辑这还没有解决问题。虽然它允许我添加初始迁移,但是当我尝试运行update-database时它似乎再次被破坏(即使我确实有它工作)。

经过多次试验和错误后,我发现原因是需要在我的解决方案中的所有项目中更新我的ASP.NET MVC引用。一旦我这样做,它就像一个魅力。

除此之外,迁移一些其他插件也会导致问题,再次通过试验和错误,我需要通过Nuget添加Webgrease引用并将ANTLR更新到最新版本。

另一个问题:我的插件是主要解决方案的一部分。为了得到一些更新,我不得不自己打开。保存解决方案文件。启用Nuget自动恢复。清理构建,尝试并启用迁移,让它失败。撤消源代码管理中的所有更改。再次通过主解决方案加载它,然后添加迁移,此时它抱怨它无法找到的引用。一旦我添加了这些(或在某些情况下删除并重新添加)它就可以了。很奇怪,但对其他人可能有用。