首页 > 解决方案 > EF Core 2.1 Code First,如何实现运行时自动迁移。。

问题描述

我想在程序运行时自动迁移更改,所以,这样写的代码。但是除了第一次,不管怎么修改模型,迁移都没有效果。

            using (var serviceScope = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>()
                .CreateScope())
            {
                var database = serviceScope.ServiceProvider.GetService<StuDb>().Database;
                database.Migrate();
            }

所以,我做了很多其他的尝试,比如改成这个

    database.EnsureDeleted();
    database.EnsureCreated();

删除数据库.Migrate(); 加上上面两句,这样就可以每次都套用最新的模型,但是也有一个问题,就是每次都会清空数据。这是发展的一个大问题。我希望保留数据以方便后续跟进,例如功能测试。

有没有办法在保留数据的同时将数据库模型迁移到最新的实体模型?

请帮我。谢谢!任何帮助将不胜感激。

标签: asp.net-core-2.1ef-core-2.1

解决方案


推荐阅读