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

Проблема у меня есть, я создаю CI \ CD-трубопровод, в котором мне нужно запустить команду данных семян, прежде чем запустить проект. Другие посты предложили, чтобы я должен был построить свой собственный пакет Dotnet CLI для данных семян.

Есть ли лучшее решение, я хотел бы, чтобы решение, похожее на команду высева базы данных LARAVAVE php artisan db:seed

0
chinloyal 29 Сен 2019 в 04:15

1 ответ

Лучший ответ

Лучший способ, которым я обнаружил, что данные семян отдельно от выполнения приложения - использование основного метода ARGS:

public static void Main(string[] args) {
        var host = BuildWebHost(args);

        if(args.Length > 0){
            bool seed = args.Any(arg => arg == "/seed");
            bool start = args.Any(arg => arg == "/start");

            if(seed) InitializeDatabase(host);
            if(start) host.Run();
        }else{
            InitializeDatabase(host);
            host.Run();
        }
 }

Итак, для семян отдельно от выполнения запуска dotnet run /seed и для запуска do dotnet run /start. Если вы делаете только dotnet run, то он будет семенить и запустить.

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

0
chinloyal 29 Сен 2019 в 10:48