解决方法
我认为这是一个重要的问题,应该很好的回答!
什么是EnsureCreated?
EnsureCreated是新的EF核心方法,可确保上下文的数据库存在.如果存在,则不采取任何行动.如果不存在,则创建数据库及其所有模式,并确保它与该上下文的模型兼容.
注意:
此方法不使用迁移来创建数据库.此外,无法使用迁移更新创建的数据库.如果要定位关系数据库并使用迁移,可以使用DbContext.Database.Migrate()方法来确保创建数据库,并应用所有迁移.
我们如何使用EF 6?
确保被处理相当于EF 6的下列方法:
软件包管理器控制台
启用迁移 – 启用自动迁移.添加迁移/更新的数据库.
>从代码:
Database.SetInitializer CreateDatabaseIfNotExists
要么
使用DbMigrationsConfiguration并设置AutomaticMigrationsEnabled = true;
什么是Database.Migrate?
将上下文的任何挂起迁移应用于数据库.如果数据库不存在,将创建数据库.
我们如何使用EF 6?
context.Database.Migrate()等效于EF 6的下列方法:
软件包管理器控制台
更新数据库 – 目标迁移
>使用自定义DbMigrationsConfiguration:
AutomaticMigrationsEnabled = false;或使用DbMigrator.
结论:
如果您正在使用迁移,则有context.Database.Migrate().如果您不想要迁移,并且只需要一个快速数据库(通常用于测试),请使用context.Database.EnsureCreated()/ EnsureDeleted().