EF Core Add-Migration 针对解决方案中的特定项目

EF Core Add-Migration target a specific project in a solution

自从将 DbContext 添加到我的解决方案中的第二个项目后,以前用于添加新迁移的语法已经消失 window。我无法在知道如何针对特定项目创建新迁移时找到答案。

使用包管理器控制台我尝试了各种不同的命令但都失败了:

Add-Migration InitialMigration1 -OutputDir "Data/Migrations" -Context SeqDbContext -Project SeqLogger-API -StartupProject SeqLogger-API -Namespace OIS_V1.0.0

我收到构建开始消息大约 10 秒,但失败了。值得注意的是,我在两个项目中具有相同的文件夹目录结构,即 myProjectName/Data/Migrations

下面是我当前解决方案的截图:

起初这并不明显。我的问题是解决方案中我的 other 项目之一的某些代码中存在一些未解决的错误,NOT 我的那个正在尝试将迁移添加到。

而且因为我没有尝试启动有代码错误的项目,所以我对此一无所知,直到我开始卸载一些 EF Core Nuget 包然后突然开始显示另一个项目的警告,如屏幕截图所示下面。

所以我很快更正了另一个项目中的错误,现在只需使用以下命令就可以 运行 迁移有问题的新项目:

Add-Migration InitialMigration -context SeqDbContext -OutputDir "Data/Migrations"

所以这里吸取的教训是“Microsoft.EntityFrameworkCore.Tools”和包管理器不允许任何迁移,除非您的解决方案中的所有项目都已准备就绪,即除了一个项目之外,其他项目中没有突出的代码错误您正在尝试将迁移添加到。

我还了解到的最后一个技巧是,将所需的项目作为目标添加迁移是一个简单的例子,即 select在顶部显示的下拉列表 select 中输入所需的项目包管理器控制台(在我的情况下是正确的)可以从我最初问题的屏幕截图中看到。