gpt4 book ai didi

asp.net - DOTNET EF 创建您自己的自定义命令

转载 作者:行者123 更新时间:2023-12-04 10:51:53 25 4
gpt4 key购买 nike

是否可以延长

Dotnet ef migrations/database/dbcontext

创建我们自己的命令?

如果是,我们该怎么做?我正在 Laravel 中寻找类似的东西 https://laravel.com/docs/5.8/artisan您可以在其中创建自己的命令。

基本上,我想创建命令来播种我的数据库。我很清楚我可以创建一个类来播种数据并且可以从启动类中调用。我只想知道它是否已经从 Entity Framework 中可用?

例如
dotnet ef migrations seed-data

哪里 seed-data将是我的自定义命令。

谢谢

最佳答案

不知道是否可以根据需要扩展迁移,但我认为更好的方法是创建一个 DataSeeder 类,该类将创建/应用迁移并从 Startup.cs 调用它,例如:

    public class DataSeeder
{
private readonly MyDbContext _context;

public DataSeeder(MyDbContext context)
{
_context = context;
}

public void MigrateDatabase()
{
_context.Migrate();
}
}

在 Startup.cs 中:
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, DataSeeder dataSeeder)
{
//Bla bla your config
...
dataSeeder.MigrateDatabase();
}

编辑:

您可以通过三种方式扩展 CLI 工具: https://docs.microsoft.com/en-us/dotnet/core/tools/extensibility#per-project-based-extensibility .

你这里有很多 sample : https://github.com/natemcmaster/dotnet-tools .

但同样,我认为您应该使用我上面解释的通用方法。特别是对于迁移,如果您更改它,EF 可能会出现奇怪的行为。
您可以按照自己的意愿尝试扭曲 EF,但最好了解它的工作原理并思考您的代码如何使用它。

关于asp.net - DOTNET EF 创建您自己的自定义命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59442391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com