3

EntityFramework (6.1.3) 的 nuguet 包安装了一些您可以从 nuget 包管理器控制台执行的工具(如AddMigrationUpdate-Database等)。如果您使用 nuget 并且加载了适当的 .ps 文件,则这些都是可用的。

我正在使用paket而不是 nuget解决我的项目和解决方案依赖项,因此这些命令对我不可用。

是否有任何替代方法可以执行这些脚本而无需返回 nuget?

4

3 回答 3

3

正如@ErikEJ 提到的,您可以从命令行使用 migrate.exe 。不幸的是(来自文档):

该实用程序旨在执行的所有操作都是执行迁移。它无法生成迁移或创建 SQL 脚本。

因此,您可以运行任何现有的迁移,但不能使用此工具创建任何新的迁移。这使得 migrate.exe 无法替代 EF 在包管理器资源管理器中提供的工具。

我尝试在包管理器控制台中手动导入 EntityFramework.psd1 文件:

PM> Import-Module ".\packages\EntityFramework\tools\EntityFramework.psd1"

虽然这使 Enable-Migrations 命令可用,但运行它会产生以下错误:

未安装任何软件包。

EntityFramework 包未安装在项目“Foo”上。

我猜这一切都将与 EF7 一起工作得更好。但就目前而言,看起来我要么必须完全放弃 paket,要么拥有 Paket 和 Nuget 的科学怪人才能使其正常工作。

于 2016-01-22T00:23:01.440 回答
0

是的,您从命令行运行 migrate.exe,它包含在工具文件夹中的 NuGet 包中。

https://msdn.microsoft.com/en-us/data/jj618307.aspx

于 2015-12-16T14:02:16.187 回答
0

从 Paket 问题实体框架代码优先迁移

在我在 paket.dependencies 中添加 version_in_path: true 之前,EF 命令不会出现在 VS 控制台中:

nuget EntityFramework ~> 6.2 version_in_path: true
于 2020-05-20T00:43:02.470 回答