项目使用Entity Framework dbfirst,出现了需要为很多客户安装一个应用程序的情况,因此会有很多数据库。如果开发人员将新表添加到数据库中,并且相应地从中获得了代码中的新模型 (edmx),是否有办法使用 EF 在客户数据库中自动创建这个缺失的表?也就是说,问题的本质是,使用 dbfirst 方法,是否有可能以某种方式基于模型创建缺失的表/字段?
项目使用Entity Framework dbfirst,出现了需要为很多客户安装一个应用程序的情况,因此会有很多数据库。如果开发人员将新表添加到数据库中,并且相应地从中获得了代码中的新模型 (edmx),是否有办法使用 EF 在客户数据库中自动创建这个缺失的表?也就是说,问题的本质是,使用 dbfirst 方法,是否有可能以某种方式基于模型创建缺失的表/字段?
使用迁移https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/?tabs=dotnet-core-cli。数据库本身包含有关已应用迁移的信息,如果您保留版本化迁移,则不会有任何问题。
在实践中:有一个 InitDB 迁移被注入到客户的数据库中。如果开发人员有一个新的迁移 NewMigration1 并且 InitDB 迁移没有被破坏(覆盖),那么客户群需要做的就是运行 update-database 命令。