Entity framework .NET核心种子数据与dotnet cli

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

我到处都搜索过,我发现的大多数文章都建议,为了给数据添加种子,我必须使用Program类,每当我运行项目时,它都会运行我的种子数据代码

我遇到的问题是,我正在设置一个CI\CD管道,在运行项目之前,我需要在其中运行一个seed data命令。其他帖子建议我必须构建自己的dotnetcli包来为数据种子


是否有更好的解决方案,我想要一个类似于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
和运行do
dotnet运行/start
时分别进行种子设定。如果只执行
dotnet运行
,则它将播种并运行


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

是的,请在项目中为数据库更改制作您自己的CLI包。您可以随时使用命令行运行它。您可以共享解决方案中的实体或其他内容。