.net核心ef迁移测试 - 使用c#方法应用迁移

时间:2017-01-15 18:02:02

标签: .net-core entity-framework-core ef-migrations

我认为必须测试ef迁移。 至于我,集成测试将是最佳解决方案。 当前的解决方案是将迁移应用于内存数据库,但问题是我还要运行迁移脚本。

您是否知道如何使用c#代码应用迁移?

3 个答案:

答案 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