2016-09-30 2 views
1

Некоторые из команд командной строки ядра Entity Framework принимают параметр environment. Например, dotnet ef migrations list --environment <env_name>.Как использовать параметр среды, переданный в EntityFramework Core CLI

Сборка, в которой я храню миграции, отделена от сборок данных, поэтому мне пришлось вывести из IDbContextFactory.

И вот мой вопрос: есть ли способ получить параметр среды, переданный в CLI из моего класса DbContextFactory? Мне нужно это, чтобы применить строки соединений конкретной среды.

Заранее спасибо.

ответ

5

Глупый меня, после того дня, глядя вокруг, я заметил, что Create метод IDbContextFactory интерфейса имеет параметр типа DbContextFactoryOptions, который, в свою очередь, имеет EnvironmentName свойство, которое, как представляется, один передается командам CLI.

Корпус закрыт.

+0

Престижность умных людей, использующих EF Core, несмотря на серьезную нехватку документации! Надеюсь, что это распространяется на [aspnet/EntityFramework.Docs # 204] (https://github.com/aspnet/EntityFramework.Docs/issues/204). – bricelam

0

ASP.NET ядро ​​и EF Ядро 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