【发布时间】:2015-12-18 01:36:19
【问题描述】:
想知道是否有人可以帮我解决这个问题。
我可以使用包管理器控制台来启用迁移、添加迁移等。但我希望能够通过 PowerShell 对象使用 c# 代码来做到这一点
到目前为止我所拥有的是:
var ps = PowerShell.Create();
ps.AddCommand("Set-ExecutionPolicy");
ps.AddArgument("Unrestricted");
ps.AddCommand("Import-Module");
ps.AddParameter("Name");
ps.AddArgument(@"'.\packages\EntityFramework.6.1.3\tools\EntityFramework.psm1'";
ps.AddCommand("Add-Migration");
ps.AddParameter("Name");
ps.AddArgument("Migration21Sept");
ps.AddParameter("ProjectName");
ps.AddArgument("Context1");
ps.Invoke();
但当我执行此代码时,我收到一条错误消息:“‘Add-Migration’一词未被识别为 cmdlet、函数、脚本文件或可运行程序的名称”
【问题讨论】:
-
表示模块(
EntityFramework.psm1)没有正确加载 -
您也可以使用DbMigrator 来迁移数据库。你的实际问题是什么?在我看来,这是一个 XY 问题
-
感谢您的回复.. 是否有任何原因导致无法正常加载?或者你能给我指出正确的方向吗?
-
@Default 我知道 Migrator 和 ToolingFacade 类。我可以通过 ToolingFacade 类构建一个新的迁移,在这个脚手架对象中是创建这个迁移所需的代码。因此,理论上,我可以创建一个新文件并将代码添加到其中。然后更新此迁移。尽管我遇到的一个问题是它没有注意到我的模型更改,并且 Up&down 方法是空的。我只需要一种方法,通过代码来创建一个新的迁移文件。所以我将使用 DbMigrator 来实际处理它。
标签: c# entity-framework powershell entity-framework-migrations cmdlet