EF迁移错误:无法加载类型'System.Data.Entity.Infrastructure.DbContextInfo'

时间:2011-08-11 04:44:17

标签: entity-framework code-first ef-migrations

我正在使用ContosoUniversity示例。我刚刚使用Nuget下载并安装代码首先迁移pakage。当我执行update-database命令时,它会抛出错误。除了安装nuget包之外还有什么可以做的吗?

Update-Database : Could not load type 'System.Data.Entity.Infrastructure.DbContextInfo' from assembly 'EntityFramework, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
At line:1 char:16
+ update-database <<<< 
    + CategoryInfo          : NotSpecified: (:) [Update-Database], TypeLoadException
    + FullyQualifiedErrorId : System.TypeLoadException,System.Data.Entity.Migrations.Commands.MigrateCommand

修改, 现在我已经安装了ADO.NET Entity Framework 4.1 - Update 1,现在它抛出了一个错误

Update-Database : The project 'ContosoUniversity' does not contain or reference any contexts.
At line:1 char:16
+ update-database <<<< 
    + CategoryInfo          : NotSpecified: (:) [Update-Database], InvalidOperationException
    + FullyQualifiedErrorId : System.InvalidOperationException,System.Data.Entity.Migrations.Commands.MigrateCommand

我在微软博客中尝试了这个场景,但没有任何改变。 (http://blogs.msdn.com/b/adonet/archive/2011/07/27/code-first-migrations-august-2011-ctp-released.aspx

2 个答案:

答案 0 :(得分:4)

尝试安装msi。

http://www.microsoft.com/download/en/details.aspx?id=26825

您收到的第二个错误听起来像是在识别项目中的上下文时遇到问题。确保您有一个继承自DbContext的类。

我还会检查您的项目是否引用了Entity Framework的正确版本 - 4.1 Update 1.根据项目类型,您应该能够在项目的References文件夹中找到相关引用。您可能需要单击“显示所有文件”按钮(解决方案资源管理器顶部工具栏左侧第二个)。

选择引用后,您将在“属性”窗格中看到DLL的路径及其版本等信息(如果尚未显示,则为F4)。

编辑:根据下面的JTew,需要重新启动Visual Studio。

答案 1 :(得分:1)

有同样的错误。

我有:

  • 通过.msi
  • 安装了EF 4.1(旧版本)
  • 通过NuGet安装较新版本(EF 4.1 Update 1 Migrations Alpha 3)

这个错误原来是框架抱怨,因为它从GAC获得旧的4.1.0.0。

卸载旧的EF 4.1就可以了。