带有dotnet CLI的.NET Core种子数据

时间:2019-09-29 01:15:08

标签: entity-framework asp.net-core

我到处搜索过,发现的大多数文章都建议,要播种数据,我必须使用程序类,该类将在我运行项目时运行种子数据代码。

我遇到的问题是我正在设置CI \ CD管道,在运行项目之前,我需要在其中运行种子数据命令。其他帖子建议我必须构建自己的dotnet cli软件包以播种数据。

有没有更好的解决方案,我想要一个类似于laravel的数据库种子命令php artisan db:seed

的解决方案

1 个答案:

答案 0 :(得分:0)

我发现与运行应用程序分开分别播种数据的更好方法是使用Main方法args:

Description

因此,要与运行运行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。如果您仅执行dotnet run /start,则它将播种并运行。

因此,如果您在将应用程序种子与运行种子分离时遇到麻烦,那么这是我想出的最佳解决方案。