如何使用传递给 EntityFramework Core CLI 的环境参数

本文关键字:CLI 环境 参数 Core EntityFramework 何使用 | 更新日期: 2023-09-27 18:09:42

某些实体框架核心 CLI 命令接受environment参数。例如dotnet ef migrations list --environment <env_name> .

保存迁移的程序集与数据实体程序集是分开的,因此我必须从IDbContextFactory派生。

我的问题来了:有没有办法将环境参数从我的DbContextFactory类中传递给 CLI?我需要它来应用特定环境的连接字符串。

提前谢谢。

如何使用传递给 EntityFramework Core CLI 的环境参数

愚蠢的

我,在环顾四周的一天之后,我注意到IDbContextFactory接口Create方法具有 DbContextFactoryOptions 类型的参数,而该参数又具有EnvironmentName属性,该属性似乎是传递给 CLI 命令的属性。

案件已结案。

ASP.NET Core

和 EF Core 2.0.1

为了授予迁移实体更改的提升权限,同时保持应用程序的较低权限,创建了两个 SQL 用户。

应用程序的连接信息存储在 appsettings.json 中。 用于 EF CLI 的连接信息存储在 appsettings.<ENVIRONMENT_NAME>.json 中。 两者都使用相同的ConnectionStrings密钥。

要使dotnet ef成功执行,请在尝试更新数据库之前设置ASPNETCORE_ENVIRONMENT

set ASPNETCORE_ENVIRONMENT=<ENVIRONMENT_NAME>
dotnet ef database update