entityframework 代码优先迁移数据包

entityframework code-first migrations paket

EntityFramework (6.1.3) 的 nuguet 包安装了一些您可以从 nuget 包管理器控制台执行的工具(例如 AddMigration更新数据库,等等)。如果您使用 nuget 并且加载了适当的 .ps 文件,则这些可用。

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

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

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

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

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

All the utility is designed to do is execute migrations. It cannot generate migrations or create a SQL script.

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

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

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

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

No packages installed.

The EntityFramework package is not installed on project 'Foo'.

我猜这一切都将与 EF7 一起更好地工作。但就目前而言,看来我要么不得不完全放弃 paket,要么同时使用 Paket 和 Nuget 的科学怪人来实现这一点。

来自 Paket 问题 Entity Framework code-first migrations:

在我添加 version_in_path: true in paket.dependencies:

之前,EF 命令不会出现在 VS 控制台中
nuget EntityFramework ~> 6.2 version_in_path: true