使用 VS Community 2017。我尝试创建初始迁移,但出现错误消息:
Entity Framework Core 和 Entity Framework 6 均已安装。 Entity Framework Core 工具正在运行。对于实体框架 6,使用“EntityFramework\Add-Migration”。 在程序集“Test_Project”中找不到 DbContext。确保您使用正确的程序集并且类型既不是抽象的也不是泛型的。
...我的 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
所在的项目名称。因此,只需在 NuGet PM 控制台上输入:Add-Migration MigrationName -Project YourProjectName
。
使用 nuget 包管理器,我安装了所有 EntityFrameworkCore 依赖项以及 EntityFramework 6 依赖项。当我需要使用 EF 6 时,Visual Studio 正在使用 EF Core。卸载所有 EF Core 依赖项解决了此问题。
当我遇到这个问题时,我刚刚将现有项目重命名为“EF”,然后将所有命名空间重命名为“EF”。对我有用的是我将程序集名称更改为“EF”(项目属性/应用程序/程序集名称)以外的名称。我正在使用 VS Community 2019。
只需关闭 Visual Studio 并重新启动项目,然后再次编写命令即可。它对我有用两次
我通过重命名项目解决了这个问题,之前它与解决方案的名称一致。
是的,只需关闭 Visual Studio 并重新打开并执行命令即可,如果您使用 PowerShell 进行迁移,请使用以下命令。
dotnet ef migrations add Initial
如果需要重置数据库
dotnet ef database drop --force --context DbContext_ClassName