C# 实体框架自动迁移

C# 实体框架自动迁移,c#,entity-framework-6,C#,Entity Framework 6,我有一个三层体系结构项目(Web、服务、DataAccess),我只想在POCO发生更改时将数据库迁移到最新版本。我们可以通过从Application\u Start事件调用自动迁移代码来实现这一点。在这个场景中,我的web中没有DataAccess项目的引用。那么如何从Application\u Start事件调用自动迁移代码呢 Database.SetInitializer(new MigrateDatabaseToLatestVersion<BlogContext, Configur

我有一个三层体系结构项目(Web、服务、DataAccess),我只想在POCO发生更改时将数据库迁移到最新版本。我们可以通过从
Application\u Start
事件调用自动迁移代码来实现这一点。在这个场景中,我的web中没有
DataAccess
项目的引用。那么如何从
Application\u Start
事件调用自动迁移代码呢

Database.SetInitializer(new MigrateDatabaseToLatestVersion<BlogContext, Configuration>()); 
Database.SetInitializer(新的MigrateDatabaseToLatestVersion());
我无法从
应用程序启动
访问
BlogContext

请帮帮我

提前谢谢
[在生产环境中,我们无法通过VS运行更新数据库命令,因此是否有其他方法自动更新数据库)

您应该通过迁移生成脚本,以便在生产环境中执行。 对我有用的是使用 更新数据库-脚本

创建具有“迁移差异”的脚本, 可以将其作为SQL脚本手动应用于目标服务器数据库(并且应该插入正确的迁移表行等)

就个人而言,我不相信“实时”场景中的自动更新,我总是更喜欢手动数据库管理(即,创建或更改数据库所需的权限存在问题——更不用说共享主机等了)——但从我所看到的来看,在同步方面,迁移非常可靠(事实上,“解开”它们的唯一方法通常是删除Db并强制进行完整/全新更新)。
希望这能有所帮助。

我不确定我是否理解你的问题。如果你的Web项目与数据库通信,它应该有一个对你的
DataAcess
项目的引用。如果没有,你还有其他“业务层”在这两者之间,在业务层定义一个进行迁移的函数,并从Web项目中调用它。非常感谢您立即回复Arunkumar。我从您的观点中了解了方法。