我最近使用MVC3
Code First将Entity Framework 4.3
网络应用程序升级到现有数据库MVC5
和Entity Framework 6
。我们不使用代码优先迁移,并且所有数据库更改都是手动执行的。这在升级之前完美运行,我的应用程序中没有任何明确指示Entity Framework禁用迁移的特殊代码。
升级之后,我开始获得SQL异常,并且在检查时发现EF正在向模型中的一些视图发送CREATE语句。
我已经研究了这个,看来这应该是使用Package Manager Console中的“Enable-Migrations
”命令的显式设置(参见这里:http://msdn.microsoft.com/en-us/data/dn579398#step2)。
进一步的研究使我找到Database.SetInitializer<MyContext>(null)
命令来关闭迁移,这看起来有效。
虽然我已经解决了这个问题,但我想知道这里发生了什么。现在这是一个默认启用的设置,并且总是需要手动禁用,或者是其他正在进行的操作。我担心可能会有其他隐藏的含义,我想更好地了解正在发生的事情。