Asp.net mvc 4 首先启用迁移的EF6代码是否支持远程配置

Asp.net mvc 4 首先启用迁移的EF6代码是否支持远程配置,asp.net-mvc-4,configuration-files,entity-framework-migrations,entity-framework-6,Asp.net Mvc 4,Configuration Files,Entity Framework Migrations,Entity Framework 6,到目前为止,在我们所有的web应用程序项目(mvc4)中,db ConnectionString不在project.config文件中,而是在另一台服务器(配置服务器)上,应用程序本身在启动时将其拉入 现在,我们正在使用EF 6 CodeFirst和已启用的迁移。 因此,当我们对db模型进行更改时,在包管理中,我们运行: add-migration 'AnotherScript' 然后 update-database 但是,要使其正常工作,ConnectionString需要位于Web.co

到目前为止,在我们所有的web应用程序项目(mvc4)中,db ConnectionString不在project.config文件中,而是在另一台服务器(配置服务器)上,应用程序本身在启动时将其拉入

现在,我们正在使用EF 6 CodeFirst和已启用的迁移。 因此,当我们对db模型进行更改时,在包管理中,我们运行:

add-migration 'AnotherScript'
然后

update-database
但是,要使其正常工作,ConnectionString需要位于Web.config中,以便包管理器可以找到它

有没有办法让这个连接字符串处于远程状态,如果有,如何实现?
我们的想法是让包管理器在我的对象ConfigurationUtil中运行代码,它将获得远程配置。

有一个解决方案,但它不是现成的

  • 您需要实现一个自定义的
    包管理器控制台
    命令,该命令使用源代码中的连接字符串初始化一些变量
    $connection string
    。查看一些详细信息

  • 现在您可以使用自定义连接字符串运行
    updatedatabase
    updatedatabase-Verbose-ConnectionString$ConnectionString


  • 签出-您可以将连接字符串作为
    -ConnectionString
    参数传递给
    更新数据库
    -这并不完全是您想要的,但可能很好,谢谢您的指导。但在我开始进一步研究它之前,如果我制作定制包管理器控制台,它也能用于生产吗。因为在那里,迁移脚本会在发布时自动执行,我不会像在本地计算机上开发时那样手动键入更新数据库。@Boris如果您不想手动运行脚本“UpdateDatabase”,您可以在项目的全局文件中创建一些逻辑,以便从那里运行它。查看此博客文章,了解如何使用代码运行迁移脚本->