Можно ли инициализировать / заполнить данные базы данных во время запуска приложения? - PullRequest
0 голосов
/ 14 апреля 2020

Мы хотели бы программно убедиться, что таблица базы данных имеет определенный набор строк (на основе иногда меняющегося перечисления). Мы используем EF Core 2.2 с миграцией кода и ищем подходящее место для заполнения этих данных. Мы думали, что добавление метода заполнения в нашу Startup.cs было бы хорошей идеей, но в документации Microsoft говорится

Код заполнения не должен быть частью нормального выполнения приложения. поскольку это может вызвать проблемы параллелизма, когда запущено несколько экземпляров, и также потребовать, чтобы приложение имело разрешение на изменение схемы базы данных.

Код в Startup.cs считается "частью нормального выполнения приложения" ?

Наше приложение в настоящее время работает только с 1 экземпляром, но в будущем их может быть несколько. Кроме того, у нас есть приложение Azure Functions и консольное приложение, которое может также потребовать, чтобы в таблице базы данных были правильные строки перед выполнением. Несмотря на эти опасения, я видел принятые и отклоненные ответы в других темах , в которых говорилось, что инициализация как часть Startup.cs в порядке. Мы будем стрелять себе в ногу, делая это?

1 Ответ

0 голосов
/ 14 апреля 2020

Из документов:

В зависимости от ограничений вашего развертывания код инициализации может быть выполнен различными способами:

Локальный запуск приложения инициализации.
Развертывание приложение инициализации с основным приложением, вызов процедуры инициализации и отключение или удаление приложения инициализации.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...