【问题标题】:Running DNX (EF7) database migration on Azure在 Azure 上运行 DNX (EF7) 数据库迁移
【发布时间】:2016-01-16 05:46:02
【问题描述】:

我一直在本地运行一个使用 ASP.NET 4.6 和 EF7 的 MVC 项目,一切正常。我跑了 dnx 。 ef migration 创建数据库表的初始命令,一切运行良好。该应用程序有效。

使用 Azure 我有一个问题,我似乎无法运行 dnx 。 ef 迁移命令,所以我的 SQL 数据库是空的。我已经调试了 Startup.cs 并正确检索了连接字符串,但表不存在。

我使用 Visual Studio 2015 中的发布选项部署到我的 Azure Web 应用程序。

如何在我的网络应用程序上运行此命令?还有另一种生成数据库的方法吗?

谢谢

【问题讨论】:

  • 我面前没有它,但我相信发布选项,有一个“在发布时运行 EF 迁移”。你看到了吗?
  • 至少在 Visual Studio 2015、EF7、DNX Beta 5 中没有这样的选项。

标签: asp.net azure database-migration dnx entity-framework-core


【解决方案1】:

似乎 EF 团队已经消除了臭名昭著的数据库初始化程序,并在版本 7 上提供了一种更通用的方法。

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

yourDbContext.Database.EnsureCreated();

创建数据库以防它不存在并且

yourDbContext.Database.Migrate();

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

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

【讨论】:

  • 看起来.Migrate 命令已被(重新)移动。有人知道现在该怎么办吗?
  • EF 领域的知名人士 Julie Lerman 写了一篇文章。看起来他们已经取消了 EF 7 中的自动迁移。msdn.microsoft.com/en-us/magazine/mt614250.aspx
  • 话虽如此,我可以从我的 DbContext 的构造函数中使用 Database.Migrate。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
  • 1970-01-01
  • 1970-01-01
  • 2016-02-28
相关资源
最近更新 更多