.NET Core Entity Framework Core(EF Core)的自动创建数据库功能,开发者可以在不需要手动编写数据库架构定义的情况下,使用代码优先(Code-First)方法创建数据库。这项功能对于简化开发流程、快速原型设计以及开发过程中的快速迭代都非常有用。

1、.NET Core中手动执行命令创建

dotnet ef migrations add MyFirstMigration
dotnet ef database update

2、通过.NET Core代码,首次使用时自动创建

1)如果已经创建了迁移,则可以在Startup.cs中执行它们,如下所示。

 public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
using (var serviceScope = app.ApplicationServices.GetService<IServiceScopeFactory>().CreateScope())
{
var context = serviceScope.ServiceProvider.GetRequiredService<ApplicationDbContext>();
context.Database.Migrate();
}
//省略不相关代码...
}

使用添加迁移的表和数据创建数据库

2)如果不迁移数据,只是需要在首次运行时,完全按照在上下文类中的DbContext模型来创建数据库,则可以使用:

 public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
using (var serviceScope = app.ApplicationServices.GetService<IServiceScopeFactory>().CreateScope())
{
var context = serviceScope.ServiceProvider.GetRequiredService<ApplicationDbContext>();
context.Database.EnsureCreated();
}
//省略不相关代码...
}

如果需要在创建数据库之前删除它,则可以使用下面代码:

context.Database.EnsureDeleted();

参考文档:http://docs.identityserver.io/en/release/quickstarts/8_entity_framework.html?highlight=entity

推荐文档