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