我认为必须测试ef迁移。 至于我,集成测试将是最佳解决方案。 当前的解决方案是将迁移应用于内存数据库,但问题是我还要运行迁移脚本。
您是否知道如何使用c#代码应用迁移?
答案 0 :(得分:2)
获取您的背景信息并致电
context.Database.Migrate();
答案 1 :(得分:1)
在Startup.cs Configure方法中,我们运行这样的迁移(在.Net core 2.0中):
using (var serviceScope = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>().CreateScope())
{
serviceScope.ServiceProvider.GetService<DataContext>().Database.Migrate();
}
我不确定如何通过testa测试这个,可能备份并将实时数据库恢复到测试数据库,然后设置DataContext指向测试并在那里运行迁移?
答案 2 :(得分:-1)
按照https://stackoverflow.com/a/38416891/2875452。我能够找到如何使用c#代码中的ef core迁移到特定迁移。
context.Database.EnsureDeleted(); // ensure db is deleted on starting
context.Database.Migrate(); // run migrations
context.GetService<IMigrator>().Migrate("0"); // 0 this will rollback all migrations, you can pass in the specific migration name here to go up or down to that migration
使用命令行
dotnet ef database update 0