当我第一次构建网站时,我使用的是EF4 Code First(没有迁移)。现在我的客户问我一些新功能,需要对我的代码库进行一些重构。部分重构是将我的模型移动到一个单独的程序集中(应该从一开始就完成,但我当时不知道)。所以,无论如何,现在我的整个代码库已经改变,几乎所有的程序集名称和名称空间都被更改了,当我将网站部署到登台环境时,EF重新生成了测试数据库。
所以我的问题有什么办法可以避免这种情况吗?我还没有使用迁移,但这是一个可行的解决方案吗?
P.S:我也想知道为什么会发生这种情况,我并没有真正改变任何模型类的任何属性。难道现在它们属于另一个名称空间,它们被EF看作是一个全新的模型吗?答案 0 :(得分:2)
如果您确定没有更改任何表,请尝试添加:
Database.SetInitializer<YourContext>(null);
初始化您的应用程序。它将从您的应用程序中删除任何初始化策略,它将不再创建数据库。