使用Entity Framework Core在運行時遷移

c# database-migration entity-framework entity-framework-core

我正在將PHP / Illuminate應用程序移植到ASP.NET Core / EF Core。其中一部分包括類似Wordpress的安裝過程,該過程要求數據庫憑據,然後為應用程序創建必要的表以運行。從本質上講,我想在運行時運行某種類型的遷移,就像我可以使用Illuminate的模式構建器一樣。

我找到了Microsoft.EntityFrameworkCore.Migrations命名空間的引用,它似乎與我想要做的有關,但我似乎無法找到有關如何實際使用它的任何文檔或最佳實踐。我想我可以編寫原始的SQL查詢並執行它們,但如果可能的話,我寧願使用一個很好的強類型API。

EF Core是否可以實現這一點,是否有人就如何做到這一點有一些建議?我目前正在使用Pomelo 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();
    }
}


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow