在启动项目中发布没有上下文的实体框架代码优先迁移

Lie*_*iel 9 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

我有一个MyContext : DbContext位于Main.Data项目内的课程.我还成功地enable-migrationsMain.Data项目上发出了console命令,并且我成功地将LocalDB用作我的数据和upgrade-database迁移的SQL服务器.

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

使用自动创建的发布配置文件Import from a Windows Azure web site似乎并未认识到我正在使用Entity Framework Code First解决方案,因此我无法Execute Code First Migrations按照我的意愿启用.
相反,我只能启用Update database脚本.

我正在使用Visual Studio 2012和Entity Framework 5.0.0(从项目开始).

只是为了验证,我试图添加一个临时的MyContext类内Main项目,并enable-migrationsMain项目,在那之后我的发布配置文件自动检测到实体框架代码优先.
那当然不是解决方案(或者是?)

以下是一些相关主题:

  • 是基础学习教程.
  • 解释了部署选项,但没有解决问题.
  • 实际上提供了一些尝试的想法,但似乎都不自然.

我正在寻找一个干净稳定的解决方案.我是否必须将我的Context类放在主项目中?

提前致谢

Lie*_*iel 10

我现在可以Execute Code First Migrations在创建发布配置文件时启用.
这是我为实现它所做的:

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

这对我来说很重要.
如果有人得到更好或更有教育意义的答案,我会很高兴听到它.