数据库和 sql 文件之间的 EF6 模式比较?

EF6 Schema compare between database and sql-file?

我使用 EF6 模型优先方法通过在 Visual Studio 中使用 "Generate database from model..." 来设计 MS SQL 数据库。 这会生成一个包含所有删除和创建语句的 sql 文件。

在数据库充满记录的某个生产阶段,我不希望删除并重新创建所有表,应该就地更新它们的方案,而不需要备份和恢复所有记录。这就是我发现 EF 迁移有用的地方。

据我了解,EF 迁移仅适用于代码优先方法 - 所以不是我需要的。

下一站是 Visual Studio 中的模式比较工具,我认为它可能适合。 但不幸的是我没有 2 个数据库可以比较,我想比较的是现有数据库与新的 EF 模型(或从中生成的 SQL 文件)以获得 SQL 文件用于仅部署表的更改。

这是否可能,如果是的话 - 我必须看哪里?

Microsoft 没有为此提供的 EF 工具,不像他们为 SQL 项目和 dacpacs 构建的那样。

我们有类似的需求来确保生产架构不会因运行时错误而不同,所以我写了一个: https://github.com/reckface/EntityFramework.Verify

这个 Code review 问题中包含了它。它不会生成任何 SQL 来修复差异,但会通知您差异。

尝试使用 Devart Entity Developer 它易于使用,可让您将 EF 模型与数据库进行比较。我已经使用了 3 年多,效果非常好。