我到处搜索过,发现的大多数文章都建议,要播种数据,我必须使用程序类,该类将在我运行项目时运行种子数据代码。
我遇到的问题是我正在设置CI \ CD管道,在运行项目之前,我需要在其中运行种子数据命令。其他帖子建议我必须构建自己的dotnet cli软件包以播种数据。
有没有更好的解决方案,我想要一个类似于laravel的数据库种子命令php artisan db:seed
答案 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
,则它将播种并运行。
因此,如果您在将应用程序种子与运行种子分离时遇到麻烦,那么这是我想出的最佳解决方案。