使用 Entity Framework Core 在运行时迁移

2024-05-03

我正在将 PHP/Illuminate 应用程序移植到 ASP.NET Core/EF Core。其中一部分由类似 Wordpress 的安装过程组成,该过程要求提供数据库凭据,然后创建应用程序运行所需的表。本质上,我想在运行时运行某种迁移,就像使用 Illuminate 的模式生成器一样。

我找到了参考Microsoft.EntityFrameworkCore.Migrations 命名空间 https://learn.microsoft.com/en-us/ef/core/api/microsoft.entityframeworkcore.migrations这似乎与我想做的事情有关,但我似乎找不到任何有关如何实际使用它的文档或最佳实践。我想我可以编写原始 SQL 查询并执行它们,但如果可能的话,我更愿意使用一个漂亮的强类型 API。

EF Core 可以做到这一点吗?有人对如何做到这一点有一些建议吗?我目前正在使用Pomelo MySQL 提供商 https://github.com/PomeloFoundation/Pomelo.EntityFrameworkCore.MySql如果这有什么区别的话。


假设您已经准备好迁移,那么您的 Startup 类中的类似内容就可以解决问题:

public void ConfigureServices(IServiceCollection services)
{
    // Wire up whatever your equivalent DbContext class is here
    services.AddDbContext<ApplicationDbContext>();
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    using (var scope = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>().CreateScope())
    {
        scope.ServiceProvider.GetService<ApplicationDbContext>().Database.Migrate();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Entity Framework Core 在运行时迁移 的相关文章

随机推荐