如何使用EF Core在开发期间处理数据库更改?

时间:2017-11-09 08:35:01

标签: c# asp.net-core entity-framework-core

在使用.NET Core和Entity Framework Core进行开发期间,我正在努力应对数据库更改。

当我创建新模型并将其添加到dbContext时,即使在Startup.cs中使用dbContext.Database.EnsureCreated();,它也不会创建新表。

只有在我之前做dotnet ef database drop之前,它才会创建所有表,但每次添加新模型时必须对db进行种子处理非常烦人。 每次创建越来越多的迁移对我来说都不是一个好主意...

有人可以建议更好的方法吗?

1 个答案:

答案 0 :(得分:0)

不幸的是,EF核心似乎不支持EF 6中的自动迁移。这意味着每次更改都需要添加新的迁移。你可以在你的Startup =>配置添加此代码以自动应用最新的迁移,但如果我理解他们的文档,则必须为每次更改添加新的迁移。

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

价: EntityFramework Core automatic migrations https://github.com/aspnet/EntityFrameworkCore/issues/6214

同意@Nathan关于使用流畅的api自己创建结构。

希望这有帮助。