在Azure上运行DNX(EF7)数据库迁移

7
我一直在本地用ASP.NET 4.6和EF7运行MVC项目,一切正常。我运行了dnx .ef migration Initial命令来创建数据库表,一切都运行得很好。应用程序也可以正常工作。
但是,在Azure上我遇到了一个问题,我似乎无法运行dnx .ef migration命令,因此我的SQL数据库是空的。我已经调试了Startup.cs文件,并正确检索到了连接字符串,但表格不在那里。
我使用Visual Studio 2015中的发布选项将其部署到了Azure Web应用程序。
如何在我的Web应用程序上运行此命令?还有其他生成数据库的方法吗?
谢谢

我手头没有它,但我相信在发布选项中,有一个“发布时运行EF迁移”的选项。你看到了吗? - mason
1
至少在Visual Studio 2015、EF7和DNX Beta 5中,并不存在这样的选项。 - Joao Sousa
1个回答

10

看起来EF团队已经消除了臭名昭著的数据库初始化器,并在7版本中提供了一种更灵活的方法。

只需在调用数据库之前,在管道中使用这些方法即可。

yourDbContext.Database.EnsureCreated();

如果数据库不存在,则创建数据库

yourDbContext.Database.Migrate();

要应用迁移(如果您以后使用此功能),可以使用上述两种方法之一。以上两种方法也有异步版本。

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


看起来 .Migrate 命令已经被移除了。有人知道现在该怎么办吗? - Sean
Julie Lerman,EF领域中的知名人士,撰写了一篇文章。看起来他们在EF 7中取消了自动迁移。https://msdn.microsoft.com/en-us/magazine/mt614250.aspx - dotnethaggis
话虽如此,我能够在我的DbContext构造函数中使用Database.Migrate。 - dotnethaggis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接