我已经使用 .NET 6 和 EF Core 6 创建了一个新项目,但是当我尝试使用 创建迁移时dotnet ef migrations add,CLI 在“构建成功”后开始运行应用程序。
这不会阻止创建迁移,但会增加该过程的大量时间,因为我需要等待应用程序退出才能发出任何其他命令。
dotnet ef 迁移的片段添加输出:
在同一解决方案中,我还有许多其他使用 .NET 5 和 EF Core 5 的项目,它们都按预期创建迁移(仅构建项目,不运行它)。
这是 EF Core 6 的新功能吗?或者是否有某个配置会导致此行为?
编辑
问题似乎是 EF Core 在迁移创建期间忽略了 IDesignTimeDbContext 工厂的实现,而是默认从主机构建器获取 DbContext 的实例。显然 EF Core 5 也可能发生这种情况。
dotnet/efcore github 上有一个未解决的问题:Migrations script not using IDesignTimeDbContextFactory
c# entity-framework-migrations asp.net-core-6.0 .net-6.0 ef-core-6.0