使用EFCore的CodeFirst,在设计阶段,直接使用Database.EnsureCreated()和EnsureDeleted()可以快速删除、更新最新的数据结构。由于没有什么数据,删除的风险非常低。但是对于已经投入生产的数据库,这个方法就绝对不可行了。考虑以下场景:项目已经上线,一直使用本地测试数据库进行开发,本地已经增加和修改了较多数据库表结构,线上数据庞大且实时更新,现在测试完毕需要进行上线。如果需要更新生产数据库,我能想的有两种方法:从一开始就使用Migration从数据库开始设计的时候,就使用EFMigration,保证数据库能够与代码同步,不过操作的时候,需要极为小心,务必