2015-10-17 89 views
7

我一直在本地运行ASP.NET 4.6和EF7的MVC项目,一切正常。我跑了dnx。迁移初始命令来创建数据库表,并且一切运行正常。该应用程序工作。在Azure上运行DNX(EF7)数据库迁移

与Azure我有一个问题,我似乎无法运行dnx。因为我的SQL数据库是空的。我已经调试过Startup.cs并且连接字符串被正确检索,但表格不在那里。

我使用Visual Studio 2015中的发布选项来部署到我的Azure Web App。

如何在我的web应用程序上运行此命令?是否有另一种方式来生成数据库?

感谢

+0

我没有在我面前,但我相信在发布选项中,有一个“在发布时运行EF迁移”。你看到了吗? – mason

+1

至少在Visual Studio 2015,EF7,DNX Beta 5中没有这样的选项。 –

回答

10

看来,EF队先后淘汰了臭名昭著的数据库初始化,并提供更灵活的方法,关于版本7

到数据库的任何调用之前只需要使用管道这些方法,

yourDbContext.Database.EnsureCreated(); 

建立的情况下,它不存在数据库和

yourDbContext.Database.Migrate(); 

以应用迁移(如果以后使用此功能)。上述两种方法都有一个异步版本。

在我的解决方案中,我创建了一个静态类,用于初始化数据库并为其添加一些数据。当满足某些条件时,我从Startup类的Configure方法调用Seed方法。

+0

看起来'.Migrate'命令已被(重新)移动。任何人都知道现在该做什么? – Sean

+0

Julie Lerman,在EF空间中的一位知名人士写了一篇文章。看起来他们已经取消了EF 7中的自动迁移功能。https://msdn.microsoft.com/en-us/magazine/mt614250.aspx – dotnethaggis

+0

这就是说,我能够使用Database.Migrate从构造函数我的DbContext。 – dotnethaggis