EF Core : 迁移失败,提示没有TOOLS包
EF Core : migration failed, prompting that there is no TOOLS package
在我的 ASP.NET Core 3.1 项目中,我使用 EF Core 进行代码迁移。但是当我使用add-migration MyProject
命令进行操作时,出现错误
Your startup project 'MyProject' doesn't reference Microsoft.EntityFrameworkCore.Design. This package is required for the Entity Framework Core Tools to work. Ensure your startup project is correct, install the package, and try again.
但是我确定我下载了Entity Framework Core Tools包,希望您能给我一些建议,谢谢。
你能展示你所有的 EFCORE 依赖项吗?
我这里有迁移成功的案例,可以参考:
型号:
public class TestModel
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public string pwd { get; set; }
}
数据库上下文:
public class TestContext: DbContext
{
public TestContext(DbContextOptions<TestContext> options) : base(options) { }
public DbSet<TestModel> Users { get; set; }
}
appsettings.json:
"ConnectionStrings": {
"DefaultConnection": "your db"
}
Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<TestContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddControllersWithViews();
}
需要的依赖如下:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.14">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.14" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.14">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
</Project>
迁移:
在我的 ASP.NET Core 3.1 项目中,我使用 EF Core 进行代码迁移。但是当我使用add-migration MyProject
命令进行操作时,出现错误
Your startup project 'MyProject' doesn't reference Microsoft.EntityFrameworkCore.Design. This package is required for the Entity Framework Core Tools to work. Ensure your startup project is correct, install the package, and try again.
但是我确定我下载了Entity Framework Core Tools包,希望您能给我一些建议,谢谢。
你能展示你所有的 EFCORE 依赖项吗?
我这里有迁移成功的案例,可以参考:
型号:
public class TestModel
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public string pwd { get; set; }
}
数据库上下文:
public class TestContext: DbContext
{
public TestContext(DbContextOptions<TestContext> options) : base(options) { }
public DbSet<TestModel> Users { get; set; }
}
appsettings.json:
"ConnectionStrings": {
"DefaultConnection": "your db"
}
Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<TestContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddControllersWithViews();
}
需要的依赖如下:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.14">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.14" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.14">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
</Project>
迁移: