如何在项目开始时执行迁移

How to execute a migration on project start

我想在 start.cs 文件中执行迁移命令。 因此,当应用程序首先 运行s 时,它会查找数据库,如果它不存在,那么它会 运行s 迁移脚本。

我知道您可以使用 "dotnet migrations" 在程序包管理器控制台中执行此操作,但我希望通过代码来执行此操作。

谢谢!


更新

看起来这对我有用

我正在使用 ASP.NET 核心:NETStandard,版本=v1.6

几乎是截至 2016 年 9 月 1 日的最新佳作


更新 2

看起来使用 .Migrate() 方法可能是可行的方法。

备注*

要使用 .Migrate(),您需要添加

using Microsoft.EntityFrameworkCore;

这是我现在使用的。

        using (var context = new PeopleContext(_config,new Microsoft.EntityFrameworkCore.DbContextOptions<PeopleContext>()))
        {
            try
            {
                context.Person.Any();
            }
            catch (Exception ex)
            {
                //context.Database.EnsureCreated();
                context.Database.Migrate();
            }

        }

对于 .Net Core 应用程序启动时的 运行 EF7 迁移,我有:

在 ConfigureServices() 中

using (var dataContext = (DataContext)app.ApplicationServices.GetService(typeof(DataContext)))
            {
                dataContext.Database.Migrate();
            }

这 运行 是启动时的新迁移。

我不确定 EnsureCreated 是否会在初始 table 创建后 运行 新迁移? 参见:http://thedatafarm.com/data-access/ef7-ensurecreated-vs-migrate-methods/