迁移和configuration.seed未在Azure部署上运行

时间:2015-05-26 16:51:21

标签: entity-framework azure visual-studio-2015

我在EF上,首先是标准代码DbContext。

public class MyContext : DbContext {}

当我执行'Update-Database'

时,Configuration.cs中的种子方法在本地运行正常

但是当我部署到Azure Web App实例时,我的种子数据都没有显示出来。我的初始迁移运行,但是当我添加新的迁移和发布时,它不会运行。所以基本上只显示我的初始迁移,没有种子数据。

Azure web publish dialogue

如果我检查'更新数据库',则发布只会无限期挂起。

我已经读过应该有一个'执行代码优先迁移'复选框,但我似乎没有那个复选框。我已经尝试清理我的项目,并重新启动VS2013update4。重建项目等等。没有任何东西能够显示出来。我也试过这个:http://www.dominicstpierre.com/2012/11/enable-code-first-migrations-check-box.html,但它似乎不适用于VS2013u4。

迁移在我的MyProject.DataLayer项目中。实际的Web应用程序位于MyProject.WebApp中。这有关系吗?它在当地工作正常。

如何显示此复选框?

2 个答案:

答案 0 :(得分:0)

Entity Framework在目标计算机web.config

上设置初始化程序

当您的应用首次点击数据库时,会运行此初始化程序。

以下是asp.net网站上一篇好文章的链接,该文章解释了如何实现这一目标:http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/migrations-and-deployment-with-the-entity-framework-in-an-asp-net-mvc-application

答案 1 :(得分:0)

我遇到了同样的问题,在天蓝色部署后,种子将根本无法执行。

我通过将其添加到entityFramework中的web.config元素中来解决此问题:

  <entityFramework>
    <!-- excluded other settings for brievity... -->
    <contexts>
      <context type="WebApplication.Data.ApplicationDbContext, WebApplication" disableDatabaseInitialization="false" >
        <databaseInitializer type="System.Data.Entity.MigrateDatabaseToLatestVersion`2[[WebApplication.Data.ApplicationDbContext, WebApplication], [WebApplication.Migrations.Configuration, WebApplication, Version=1.0.0.0, Culture=neutral]], EntityFramework" />
      </context>
    </contexts>
  </entityFramework>

重要的是,名称空间对于ApplicationDbContextConfiguration是正确的,否则将不起作用。