确保使用 NuGet 包管理器在所有项目中使用相同版本的实体框架。
最近的 Windows 更新可能已将较新版本的 Entity Framework 安装到您的活动项目中。
背景:2016 年 3 月 16 日左右,我在尝试将迁移添加到我已经启用迁移并成功完成迁移的项目时开始收到此错误。
我注意到在 3 月 10 日左右,Entity Framework 6 的新稳定版本已经发布。
如果我在 enable-migrations 命令中指定了 -ContextTypeName 参数,则会收到错误消息,表明迁移已启用。
解析度:
1) 工具 -> Nuget 包管理器 -> 管理 Nuget 包以获取解决方案
2)(不确定这一步是否必要,但是..)我将我的 Nuget 包管理器版本更新到了最新版本。此外,在更新我的 Nuget 包管理器版本后,我必须重新启动 Visual Studio 两次,然后 NuGet 命令行才能正常工作。
3) 工具 -> Nuget 包管理器 -> 管理解决方案的 Nuget 包 -> 搜索已安装的包 -> 键入实体框架
一个。您可能会在那里看到多个版本的实体框架。
湾。在实体框架的每个版本上单击管理,并确保您的项目使用相同版本的实体框架。
- 取消选中您未使用的实体框架版本,并确保您正在使用的实体框架版本在需要它的项目中进行检查。
同样,如步骤 2 中所述,在更新我的 NuGet 包管理器版本后,我必须重新启动 Visual Studio 两次以使 NuGet 包管理器控制台正常工作。我第一次启动控制台时出错,第二次运行 enable-migrations 命令时“使用 8 个参数调用 createinstancefrom 的异常无法加载文件或程序集 EntityFramework”。
但是,重新启动 Visual Studio 似乎可以解决这些问题。