迁移:在程序集中找不到 DbContext



Using VS Community 2017.我尝试创建初始迁移,并显示错误消息:

实体框架核心和实体框架 6 均已安装。实体框架核心工具正在运行。对实体框架 6 使用"实体框架\添加迁移"。 在程序集"Test_Project"中找不到 DbContext。确保使用正确的程序集,并且类型既不是抽象的也不是泛型的。

。我的数据库上下文中的代码:

protected override void OnModelCreating(DbModelBuilder mb)
{
    base.OnModelCreating(mb);
    mb.Entity<Stuff>().ToTable("Stuff");
}
public DbSet<Stuff> Stuff{ get; set; }

在包管理器控制台中,选择定义DbContext的项目,然后运行命令 add-migration initial 。例如:public class SomeContext : DbContext

您必须指定 DbContext 所在的项目名称。所以就在掘金PM控制台上,输入:Add-Migration MigrationName -Project YourProjectName .

使用 nuget 包管理器,我安装了所有 EntityFrameworkCore 依赖项以及 EntityFramework 6 依赖项。Visual Studio使用的是EF Core,而我需要它使用EF 6。卸载所有 EF Core 依赖项解决了此问题。

当我遇到此问题时,我刚刚将现有项目重命名为"EF",然后将所有命名空间重命名为"EF"。 对我有用的是我将程序集名称更改为"EF"(项目属性/应用程序/程序集名称)以外的名称。 我正在使用VS Community 2019。

只需关闭可视化工作室并重新启动项目,然后再次编写命令即可。它对我工作了两次

我通过重命名项目解决了问题,在此之前它与解决方案的名称一致。

是的只需

关闭可视化工作室并重新打开并执行命令,如果您使用的是Powershell进行迁移,请使用以下命令

-- dotnet ef migrations add Initial

如果需要重置数据库

-- dotnet ef database drop --force --context DbContext_ClassName

最新更新