9

我正在使用以下项目构建解决方案:

  • Main.Data- 类库项目
  • Main.API- Asp.NET MVC WebApi - 参考 Main.Data
  • Main- Asp.NET MVC 4 Web 应用程序 - 参考 Main.API

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

当我尝试将Main项目发布到 Windows Azure 网站时,问题就开始了。

使用自动创建的发布配置文件Import from a Windows Azure web site似乎无法识别我正在使用实体框架代码优先解决方案,因此我无法Execute Code First Migrations按照我的意愿启用。
相反,我只能启用Update database脚本。

我正在使用带有实体框架 5.0.0 的 Visual Studio 2012(自项目开始以来)。

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

以下是一些相关主题:

  • 是基础学习教程。
  • 解释了部署选项,但没有故障排除。
  • 实际上给出了一些尝试的想法,但一切似乎都不自然。

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

提前致谢

4

1 回答 1

10

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

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

这对我有用。
如果有人得到更好或更受教育的答案,我会很高兴听到。

于 2013-05-15T06:48:19.520 回答