我想使用Entity Framework Core迁移更新Azure SQL上的数据库以适应.Net Core应用程序。在线建议以下命令:
Update-Database -ConnectionString $ConnectionString -ConnectionProviderName "System.Data.SqlClient"
但是,由于Update-Database
cmdlet无法识别参数–ConnectionString
,因此无效。如何自动化数据库迁移?
答案 0 :(得分:1)
如何自动化数据库迁移?
EF不支持自动迁移,您可能需要手动执行Add-Migration
或dotnet ef migrations add
才能添加迁移文件。您可以显式执行命令以应用迁移,也可以在代码中应用迁移。
如果您要应用迁移at runtime,可以在Configure
Startup.cs
方法中添加以下代码
using (var scope = app.ApplicationServices.GetService<IServiceScopeFactory>().CreateScope())
{
scope.ServiceProvider.GetRequiredService<ApplicationDbContext>().Database.Migrate();
}
有关详细信息,请参阅此thread。