配置 EF Core CLI 参数

Con*_*ell 2 entity-framework-core ef-core-3.1

我有一个带有数据访问层的 ASP.NET Core 项目,使用 EF Core 3.1.8 和 3.1.8 版的 cli 工具。表示层和数据访问层在不同的项目中。要在 cli 中运行 EF 命令,我打开开发人员命令提示符,导航到包含数据访问层的目录并运行命令,例如

dotnet ef migrations add MyMigrationName --startup-project ../Site/Site.csproj
Run Code Online (Sandbox Code Playgroud)

或者

dotnet ef database update --startup-project ../Site/Site.csproj
Run Code Online (Sandbox Code Playgroud)

Site在这里只是一个占位符。实际项目名称较长,--startup-project每次想运行命令时都提供参数不方便。有没有我可以配置的地方,以便我可以更简洁地运行命令dotnet ef database update

bri*_*lam 6

创建一个名为ef.cmd数据访问层目录的文件,内容如下:

@dotnet ef --startup-project ..\Site %*
Run Code Online (Sandbox Code Playgroud)

然后你可以使用:

ef migrations add MyMigrationName
Run Code Online (Sandbox Code Playgroud)

或者

ef database update
Run Code Online (Sandbox Code Playgroud)

为完整起见,另一种选择是使用响应文件。这并不那么简单,但是当您有多组选项时会很有用。(例如对于多个 DbContexts)

创建一个名称类似于identity.rsp以下内容的文件。

--startup-project=..\Site
--context=IdentityContext
Run Code Online (Sandbox Code Playgroud)

并像这样使用它。

--startup-project=..\Site
--context=IdentityContext
Run Code Online (Sandbox Code Playgroud)