在我们的软件中,我们有一个拥有现有数据库的客户群。目前通过 EntitySpaces 访问数据库,但我们希望切换到 EntityFramework (v6),因为不再支持 EntitySpaces。我们还想利用迁移功能。自动迁移被禁用,因为我们只想允许数据库迁移到管理员用户。
我们从现有数据库生成 EF 模型。这一切都很好,但我们遇到的真正问题是,以编程方式区分与模型匹配但尚未转换为 EF(缺少 MigrationsHistory 表)的现有数据库和空/新数据库。转换现有数据库适用于空迁移,但对于新数据库,我们还需要包含完整模型的迁移。在迁移链中进行初始迁移总是与现有数据库发生冲突。当然,我们可以使用外部 SQL 脚本或 ADO 命令创建解决方法,创建并填充 MigrationsHistory 表。但这是我们想要避免的,因为我们的一些客户使用 MsSql 数据库,一些使用 Oracle。所以我们真的很想保留 EF 提供的抽象层。
有没有办法让 EF 通过基于代码的迁移来处理现有数据库和新数据库,而不会退回到非 EF 解决方法?