部署到Azure,SQLite / .NET Core时执行迁移

时间:2018-03-10 03:30:17

标签: sqlite azure .net-core entity-framework-core

我尝试将我的应用部署到Azure,后者正在使用带有EF Core的SQLite。当我运行dotnet时它运行正常ef迁移添加InitialCreate以及dotnet ef数据库更新,但是当我将它部署到Azure时,找不到表。我尝试使用context.Database.Migrate(),它确实创建了文件,但是当我打开它时,没有架构,这是奇怪的,并且出现同样的问题。有关如何部署到Azure并为我的SQLite数据库创建迁移的任何建议都将非常感激。谢谢。

1 个答案:

答案 0 :(得分:0)

我遵循了网上的一些建议,最后找到了适合我的解决方案。您可以创建一个称为UpdateDatabase的方法(或所需的任何其他名称),然后在Startup.cs的Configure部分中调用它。

        private void UpdateDatabase(IApplicationBuilder app)
        {
            using (var serviceScope = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>().CreateScope())
            {
                // get your database context of the current app
                using (var context = serviceScope.ServiceProvider.GetService<InsertYourDbContext>())
                {
                    // Call the migrate of the database provider to
                    // apply all data migrations pending
                    context.Database.Migrate();
                }
            }
        }