实体框架自动迁移

时间:2015-06-19 05:49:29

标签: c# entity-framework-6

我有一个3层架构项目(Web,Service,DataAccess),我只想在POCO发生变化时将数据库迁移到最新版本。我们可以通过调用Application_Start事件的自动迁移代码来完成此操作。在这种情况下,我的网站中没有DataAccess项目的引用。那么如何从Application_Start事件中调用自动迁移代码?

Database.SetInitializer(new MigrateDatabaseToLatestVersion<BlogContext, Configuration>()); 

我无法从BlogContext访问Application_Start

请帮帮我

提前致谢 [在生产环境中,我们无法通过VS运行update-database命令,所以还有其他方法可以自动更新数据库)

1 个答案:

答案 0 :(得分:3)

您应该从迁移生成脚本以在生产中执行。 对我有用的是使用 Update-Database -Script

这会创建一个具有迁移差异的脚本&#39; 您可以手动将其作为SQL脚本应用于目标服务器数据库(并且应该插入正确的迁移表行等)。

就个人而言,我不相信“直播”中的自动更新。方案,我总是喜欢手动数据库管理(即创建或改变Db所需的权限存在问题 - 更不用说共享主机等) - 但是从我所看到的迁移来看,相当于同步(实际上,解开&#39;它们通常的唯一方法是删除Db并强制完全/新的更新)。 希望有所帮助。