Entity framework .NET核心种子数据与dotnet cli
我到处都搜索过,我发现的大多数文章都建议,为了给数据添加种子,我必须使用Program类,每当我运行项目时,它都会运行我的种子数据代码 我遇到的问题是,我正在设置一个CI\CD管道,在运行项目之前,我需要在其中运行一个seed data命令。其他帖子建议我必须构建自己的dotnetcli包来为数据种子Entity framework .NET核心种子数据与dotnet cli,entity-framework,asp.net-core,Entity Framework,Asp.net Core,我到处都搜索过,我发现的大多数文章都建议,为了给数据添加种子,我必须使用Program类,每当我运行项目时,它都会运行我的种子数据代码 我遇到的问题是,我正在设置一个CI\CD管道,在运行项目之前,我需要在其中运行一个seed data命令。其他帖子建议我必须构建自己的dotnetcli包来为数据种子 是否有更好的解决方案,我想要一个类似于laravel的数据库种子设定命令的解决方案php artisan db:seed我发现,在运行应用程序时单独设定数据种子的更好方法是使用主方法args: p
是否有更好的解决方案,我想要一个类似于laravel的数据库种子设定命令的解决方案
php artisan db:seed
我发现,在运行应用程序时单独设定数据种子的更好方法是使用主方法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运行/seed
和运行dodotnet运行/start
时分别进行种子设定。如果只执行dotnet运行
,则它将播种并运行
因此,如果您在将应用程序的种子设定与运行分离时遇到困难,那么这是我提出的最佳解决方案。是的,请在项目中为数据库更改制作您自己的CLI包。您可以随时使用命令行运行它。您可以共享解决方案中的实体或其他内容。