运行代码首次迁移时,在程序集中找不到上下文类型

Nig*_*far 4 asp.net-mvc visual-studio entity-framework-6 visual-studio-2017

在Package Manager Console中运行命令enable-migrations时出现此错误:

在程序集'Vidly'中找不到上下文类型

我正在使用Visual Studio 2017.如何解决?

小智 14

  • 当您使用Visual Studio 2017时,我假设您可能使用
    了更高版本的Entity Framework(6.2.0).
  • 实体框架在启用迁移之前需要上下文.

要解决此问题,请参阅以下步骤.

  1. 在Models文件夹中创建一个MyDBContext类(您可以使用该类的任何名称).请在下面找到代码段.

为DbContext引用添加此命名空间System.Data.Entity

using System.Data.Entity; 
    namespace Vidly.Models
    {
        public class MyDBContext:DbContext
        {
            public MyDBContext()
            {

            }
            public DbSet<Customer> Customers { get; set; } // My domain models
            public DbSet<Movie> Movies { get; set; }// My domain models
        }
    }
Run Code Online (Sandbox Code Playgroud)
  1. 现在打开包管理器控制台并键入以下命令以启用迁移.

    enable-migrations -contexttypename MyDBContext (MyDBContext是我们在step1中创建的类的名称)

希望这可以帮助 :)


Bas*_*tia 6

确保您已经设置了Default Project,它出现在包管理器控制台的顶部标签和下拉列表中。这个项目应该包含你的实体框架上下文

您可以查看此帖子以查找默认项目下拉列表的位置。

所以最后你的代码应该是这样的,

Enable-Migrations -ProjectName MyContextProjectNameHere -StartUpProjectName MyStartUpProjectNameHere -Verbose
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你 :)