【发布时间】:2018-02-19 19:11:25
【问题描述】:
在独立的实体框架 7 项目中(注意,不是具有可能使用命令 DNX 的实体上下文的 MVC 项目),如何使用 Powershell 在远程数据库上运行迁移?
我目前正在使用 Entity Framework 7.0.0-rc1-final 和 Visual Studio 2015 (14.0.23107.0)。
【问题讨论】:
标签: entity-framework powershell visual-studio-2015
在独立的实体框架 7 项目中(注意,不是具有可能使用命令 DNX 的实体上下文的 MVC 项目),如何使用 Powershell 在远程数据库上运行迁移?
我目前正在使用 Entity Framework 7.0.0-rc1-final 和 Visual Studio 2015 (14.0.23107.0)。
【问题讨论】:
标签: entity-framework powershell visual-studio-2015
目前,您无法使用纯 PowerShell 来执行此操作,因为像 migrate.exe 这样的实用程序尚不存在,并且无法导入 EF PS 模块,因为它们需要包管理器 PowerShell 主机。
以下是如何在 EF7 中更新远程数据库的一些想法:
您可以做的一件事是像往常一样使用 VS 中的包管理器控制台命令来更新远程数据库。您可以创建具有远程数据库连接字符串的第二个上下文,并使用 update-database 命令指定要使用的上下文。这些命令需要 EF7 中的以下包: https://www.nuget.org/packages/EntityFramework.Commands/。 我已经在一个类库项目中成功地做到了。
另一种解决方案是通过创建 DNX 项目而不是经典项目来使用 DNX 命令。 DNX 项目不仅适用于网站,它只是另一种类型的项目。这是一个显示如何创建控制台应用程序 DNX 项目的链接: http://docs.asp.net/en/latest/dnx/console.html。 因此,对于这种类型的项目,您可以使用您似乎知道的提供的 DNX 命令。
我希望这会有所帮助。如果您更详细地描述您的情况和最终目标,也许我们可以提供更多帮助。
【讨论】:
作为评论回答太长,所以在此处添加...
你看过这个article 和答案中的链接吗?
从那个答案
将模块导入 PowerShell 控制台的问题在于,我认为该模块希望在具有可用 Visual Studio DTE 对象的上下文中运行。该环境是 NuGet 包管理器控制台。这个问题之前已经提过。看看这个blog post 和这个SO question。
可能对本问题的读者有所帮助的是您尝试过的方法、无效的方法以及可能有助于解决您的问题的其他信息。
【讨论】: