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