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

.net core .net core ef迁移测试-使用c#方法应用迁移,.net-core,entity-framework-core,entity-framework-migrations,.net Core,Entity Framework Core,Entity Framework Migrations,我认为ef迁移必须经过测试。 至于我,集成测试将是最好的解决方案。 当前的解决方案是将迁移应用于内存中的数据库,但问题是我还想运行迁移脚本 您知道如何使用c代码应用迁移吗?获取您的上下文并调用 context.Database.Migrate(); 在Startup.cs Configure方法中,我们运行如下迁移(在.Net core 2.0中): 使用(var serviceScope=app.ApplicationServices.GetRequiredService().CreateS

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


您知道如何使用c代码应用迁移吗?

获取您的上下文并调用

context.Database.Migrate();

在Startup.cs Configure方法中,我们运行如下迁移(在.Net core 2.0中):

使用(var serviceScope=app.ApplicationServices.GetRequiredService().CreateScope())
{
serviceScope.ServiceProvider.GetService().Database.Migrate();
}
我不知道你如何测试这个。可能会将实时数据库备份并还原为测试数据库,然后将DataContext设置为指向测试并在那里运行迁移?

根据。我能够找到如何使用c#代码中的ef core迁移到特定的迁移

context.Database.EnsureDeleted();//确保启动时删除数据库
context.Database.Migrate();//运行迁移
context.GetService().Migrate(“0”);//0这将回滚所有迁移,您可以在此处传入特定的迁移名称,以便向上或向下转到该迁移
使用命令行
dotnet ef数据库更新0

是,这是同一个问题。非常感谢。我想我的问题可能会被删除。可能是重复的
using (var serviceScope = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>().CreateScope())
            {
                serviceScope.ServiceProvider.GetService<DataContext>().Database.Migrate();
            }