C# 创建迁移时EF核心工具出错
我正在试验3个项目的解决方案:C# 创建迁移时EF核心工具出错,c#,entity-framework,asp.net-web-api2,asp.net-core-2.1,C#,Entity Framework,Asp.net Web Api2,Asp.net Core 2.1,我正在试验3个项目的解决方案: WebApi.netcore2.1-Test.Api 类库.NETCore2.1目标框架-Test.Data 类库.NETCore2.1目标框架-Test.Model 在Test.Data中,我创建了一个上下文类,dbnizializer类,Repository。。。 在Test.Model中,我创建了我的实体 在Test.Api中,我要创建迁移并安装此软件包: <Project Sdk="Microsoft.NET.Sdk.Web"> &l
- WebApi.netcore2.1-Test.Api
- 类库.NETCore2.1目标框架-Test.Data
- 类库.NETCore2.1目标框架-Test.Model
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Folder Include="wwwroot\images\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="AutoMapper" Version="7.0.1" />
<PackageReference Include="AutoMapper.Data" Version="2.0.0" />
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="5.0.1" />
<PackageReference Include="FluentValidation" Version="8.0.100" />
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.1.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Test.Data\Test.Data.csproj" />
<ProjectReference Include="..\Test.Model\Test.Model.csproj" />
</ItemGroup>
</Project>
得到这个
EF核心工具版本“2.1.3-rtm-32065”比运行时版本“2.1.4-rtm-31024”旧。更新工具以获得最新功能和错误修复。
目标项目“Test.Api”与迁移程序集“Test.Data”不匹配。更改目标项目或更改迁移程序集
使用DbContextOptionsBuilder更改迁移程序集。例如,options.UseSqlServer(连接,b=>b.MigrationsAssembly(“Test.Api”))。默认情况下,迁移程序集是包含DbContext的程序集。
使用Package Manager控制台的默认项目下拉列表,或从包含迁移项目的目录中执行“dotnet ef”,将目标项目更改为迁移项目
我已经完成了所有的软件包升级
我不明白,因为它不起作用
BR您必须参考EF工具,并在项目中创建迁移脚本,其中包含EF上下文,即Test.Data 我收到了同样的错误消息,抱怨版本不匹配,并找到了解决方案 运行以下命令:
Install-Package Microsoft.EntityFrameworkCore.Tools -Version 2.1.4
也许这有助于我了解ef core sql provider的版本?谢谢。。但现在,当我运行这个dotnet ef数据库更新时,我得到了:没有应用任何迁移。数据库已经是最新的。。为什么?如果有人可以看一下这个项目,这是[链接]()
public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory<TestContext>
{
public TestContext CreateDbContext(string[] args)
{
IConfigurationRoot configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build();
var builder = new DbContextOptionsBuilder<TestContext>();
var connectionString = configuration.GetConnectionString("DefaultConnection");
//configuration["Data:Products:ConnectionString"];
//
builder.UseSqlServer(connectionString);
return new TimeShareContext(builder.Options);
}
}
dotnet ef migrations add "InitialCreate" -o "Data\Migrations"
Install-Package Microsoft.EntityFrameworkCore.Tools -Version 2.1.4