C# 英孚核心;未找到任何迁移";尽管迁移文件夹包含迁移文件
我们有一个.NET核心项目,其中有一个Migrations文件夹,其中包含几个迁移,我们过去通过执行C# 英孚核心;未找到任何迁移";尽管迁移文件夹包含迁移文件,c#,.net,entity-framework-core,C#,.net,Entity Framework Core,我们有一个.NET核心项目,其中有一个Migrations文件夹,其中包含几个迁移,我们过去通过执行dotnet ef database update能够在开发数据库中成功运行这些迁移。然而,我们现在正试图将这些更改应用到我们的暂存数据库,但它不起作用。我们已经将ASPNETCORE\u环境env变量设置为Staging,当我们尝试运行迁移时,它似乎正确地将Staging作为目标。在我们的暂存数据库中创建了一个dbo.\uu EFMigrationsHistory表,但其中没有条目。此外,当我们
dotnet ef database update
能够在开发数据库中成功运行这些迁移。然而,我们现在正试图将这些更改应用到我们的暂存数据库,但它不起作用。我们已经将ASPNETCORE\u环境
env变量设置为Staging
,当我们尝试运行迁移时,它似乎正确地将Staging作为目标。在我们的暂存数据库中创建了一个dbo.\uu EFMigrationsHistory
表,但其中没有条目。此外,当我们运行dotnet ef migrations list
时,我们会收到一条消息说“找不到任何迁移”。即使我们将ASPNETCORE_ENVIRONMENT
变量设置回Development
,我们也会得到相同的结果
我们已经用verbose标志运行了上面所有的dotnet ef
命令,没有得到任何错误。唯一可能可疑的输出是未找到引用的设计时服务
和未找到设计时服务
,但我们无法确定需要做什么来修复这些问题
当我们运行dotnet ef migrations add
时,它会在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; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="3.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.0" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="3.1.0" />
<PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
<PackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.113">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.0" />
运行时间;建设;本地人;内容文件;分析仪;可传递的
全部的
运行时间;建设;本地人;内容文件;分析仪;可传递的
全部的
有没有想过为什么我们不能运行现有的迁移?事实证明,这个错误是因为缺少Designer.cs文件。由于,我们删除了它们,但EF无法找到没有它们的迁移。如果计划在任何其他环境中运行迁移,请不要删除设计器文件 您是否运行了
dotnet ef数据库更新
?