Entity framework 在启动项目中没有上下文的情况下发布实体框架代码首次迁移

Entity framework 在启动项目中没有上下文的情况下发布实体框架代码首次迁移,entity-framework,azure,asp.net-web-api,Entity Framework,Azure,Asp.net Web Api,我正在通过以下项目构建解决方案: Main.Data-类库项目 Main.API-Asp.NET MVC WebApi-引用Main.Data Main-Asp.NET MVC 4 web应用程序-参考Main.API 我在Main.Data项目中有一个MyContext:DbContext类。 我还成功地在Main.Data项目上发出了enable migrationsconsole命令,并且成功地将LocalDB用作我的数据和升级数据库的SQL server迁移 当我试图将Main项目发

我正在通过以下项目构建解决方案:

  • Main.Data
    -类库项目
  • Main.API
    -Asp.NET MVC WebApi-引用Main.Data
  • Main
    -Asp.NET MVC 4 web应用程序-参考Main.API
我在
Main.Data
项目中有一个
MyContext:DbContext
类。 我还成功地在
Main.Data
项目上发出了
enable migrations
console命令,并且成功地将LocalDB用作我的数据和升级数据库的SQL server迁移

当我试图将
Main
项目发布到Windows Azure网站时,问题就出现了

使用从Microsoft Azure网站导入的
自动创建的发布配置文件似乎没有识别出我使用的是实体框架代码优先解决方案,因此我无法按我的意愿启用
执行代码优先迁移
相反,我只能启用
更新数据库
脚本

我正在使用Visual Studio 2012和Entity Framework 5.0.0(自项目开始以来)

为了验证,我尝试在
Main
项目中添加一个临时的
MyContext
类,并在
Main
项目中启用迁移
,然后我的发布配置文件首先自动检测到实体框架代码。
当然,这不是一个解决方案(或者是吗?)

以下是一些相关的线程:

  • 是基础学习教程
  • 解释部署选项,但不进行故障排除
  • 实际上给出了一些尝试的想法,但似乎都不自然
我正在寻找一种干净稳定的解决方案。我是否必须将上下文类放在主项目中


提前感谢

我现在可以在创建发布配置文件时启用
执行代码优先迁移

以下是我为实现这一目标所做的:

  • Main/Web.config
    中,我将连接字符串的名称更改为上下文类的FQN:
    Main.Data.MyContext
  • 将引用从
    Main
    project添加到
    Main.Data
    project(直到现在才需要)

  • 这就是我的工作。
    如果有人得到更好或更具教育意义的答案,我会很高兴听到。

    你记得将app/web.config添加到你的主项目中吗?启用迁移时,会将配置文件添加到Main.Data项目中。在引用项目时不会添加这些。我的上下文在不同的项目中,但是配置文件应该在我使用它们的项目中?是的,web.config位于主项目中,配置文件位于Main.Data中。。。您是否成功将主项目部署到Azure?我的设置不是100%相同。我在VisualStudio和local中完成所有迁移工作。部署时,我的数据库是最新的,一切正常。尚未尝试使用automatic MigrationMain.Data.MyContext,这与“完整路径”(类似于文件系统路径)不同。为了使用我现有的发布配置文件(.pubxml),我必须进入它们并手动更新
    。也许重新创造它们也会奏效。谢谢这对我不起作用:(@Liel)你做了什么别的事情使它起作用了吗?