我在EF上,首先是标准代码DbContext。
public class MyContext : DbContext {}
当我执行'Update-Database'
时,Configuration.cs中的种子方法在本地运行正常但是当我部署到Azure Web App实例时,我的种子数据都没有显示出来。我的初始迁移运行,但是当我添加新的迁移和发布时,它不会运行。所以基本上只显示我的初始迁移,没有种子数据。
如果我检查'更新数据库',则发布只会无限期挂起。
我已经读过应该有一个'执行代码优先迁移'复选框,但我似乎没有那个复选框。我已经尝试清理我的项目,并重新启动VS2013update4。重建项目等等。没有任何东西能够显示出来。我也试过这个:http://www.dominicstpierre.com/2012/11/enable-code-first-migrations-check-box.html,但它似乎不适用于VS2013u4。
迁移在我的MyProject.DataLayer项目中。实际的Web应用程序位于MyProject.WebApp中。这有关系吗?它在当地工作正常。
如何显示此复选框?
答案 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>
重要的是,名称空间对于ApplicationDbContext
和Configuration
是正确的,否则将不起作用。