我使用EF6模型优先方法,通过在Visual Studio中使用“从模型生成数据库...”来设计MS SQL数据库。 这样会生成一个包含所有drop和create语句的sql文件。
在某个生产阶段,即数据库中充满了记录,我不希望所有表都被删除并重新创建,因此应在不备份和还原所有记录的情况下就地更新其方案。那就是我发现EF迁移会有用的地方。
据我了解,EF迁移仅适用于代码优先方法,因此不适合我所需要的。
下一站是Visual Studio中的架构比较工具,我认为它可以适应。 但是不幸的是我没有2个数据库要比较,我要比较的是将现有数据库与新的EF模型(或由此产生的SQL文件)相比较,以获得一个仅用于部署表更改的SQL文件。 / p>
这完全有可能吗,如果可以,我必须去哪里看看?
谢谢
答案 0 :(得分:1)
Microsoft没有为此提供EF工具,就像它们是为SQL项目和dacpacs构建的一样。
我们也有类似的需求,以确保生产模式与运行时错误相同,所以我写了一个: https://github.com/reckface/EntityFramework.Verify
此Code review问题已涵盖。它不会生成任何SQL来解决差异,但是会通知您差异。
答案 1 :(得分:0)
尝试使用Devart Entity Developer易于使用,并且可以将EF模型与数据库进行比较。我已经使用了3年多,并且像魅力一样工作。