在使用.NET Core和Entity Framework Core进行开发期间,我正在努力应对数据库更改。
当我创建新模型并将其添加到dbContext时,即使在Startup.cs中使用dbContext.Database.EnsureCreated();
,它也不会创建新表。
只有在我之前做dotnet ef database drop
之前,它才会创建所有表,但每次添加新模型时必须对db进行种子处理非常烦人。
每次创建越来越多的迁移对我来说都不是一个好主意...
有人可以建议更好的方法吗?
答案 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自己创建结构。
希望这有帮助。