我们有一个 .NET Core 项目,其中包含一个 Migrations 文件夹,其中包含多个迁移,我们过去可以通过执行 .NET Core 项目在开发数据库中成功运行这些迁移dotnet ef database update。但是,我们现在尝试将这些更改应用到我们的暂存数据库,但它不起作用。我们已将ASPNETCORE_ENVIRONMENT环境变量设置为Staging,当我们尝试运行迁移时,它似乎正确定位了暂存。我们的临时数据库中创建了一个dbo.__EFMigrationsHistory表,但其中没有条目。此外,当我们运行时dotnet ef migrations list,我们会收到一条消息“未找到迁移”。即使我们将ASPNETCORE_ENVIRONMENT变量设置回Development,我们也会得到相同的结果。
我们已经使用 verbose 标志运行了上述所有dotnet ef命令,并且没有收到任何错误。唯一看起来可能可疑的输出是No referenced design-time services were found和No design-time services were found,但我们无法确定需要做什么来解决这些问题。
当我们运行时dotnet ef migrations add <migration name>,它会在 Migrations 文件夹中成功生成一个迁移文件,并且当我们运行时dotnet ef migrations list会显示新的迁移,因此看起来我们的旧迁移位于正确的位置。dotnet ef只是由于某种原因他们没有被检测到。
我们的 中有以下软件包.csproj:
    <PackageReference Include="FlexLabs.EntityFrameworkCore.Upsert" Version="3.1.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.0">
      <IncludeAssets>runtime; build; native; …