3

我正在使用 ContosoUniversity 示例。我刚刚使用 Nuget 下载并安装了代码优先迁移包。当我执行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

4

2 回答 2

4

尝试安装msi。

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

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

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

选择引用后,您将在“属性”窗格中看到诸如 DLL 的路径及其版本之类的信息(如果尚不可见,请按 F4)。

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

于 2011-08-11T05:11:05.890 回答
1

有同样的错误。

我有:

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

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

卸载旧的 EF 4.1 就可以了。

于 2011-10-15T23:43:27.457 回答