В частности, IDesignTimeDbContextFactory
предназначен для миграции на что-то вроде библиотеки классов, где не задействован стартовый проект.Если вы хорошо используете явный стартовый проект при миграции, посмотрите ответ @ poke и избавьтесь от своей фабрики, так как она вам не нужна.
Однако, если вы хотите продолжать идти по этому путиВы должны понимать, что, как видно из названия, это «время проектирования», то есть разработки.Таким образом, получение строки подключения из конфигурации на самом деле не имеет смысла, поскольку это всегда будет ваша база данных разработки.Вот почему документы просто ссылаются на эту строку подключения явно.Не уверен, почему каждый разработчик думает, что ему нужно подумать об этом Microsoft.
Это даже не должно создавать проблемы в командной среде.Если вы используете локальный экземпляр MSSQLLocalDb
, а все ваши разработчики используют Visual Studio, то строка подключения фактически не зависит от разработчика.Или, если вы раскручиваете экземпляр SQL Server в контейнере, то каждый разработчик будет работать с той же самой настройкой контейнера.
Если есть какой-то сценарий, в котором вам нужно разрешить специфичные для разработчика строки подключения, то выможно использовать конфигурацию для этого.Тем не менее, вы должны просто использовать пользовательские секреты, и вам по-прежнему не нужен доступ к appsettings.json
в вашем веб-проекте.