EntityFramework(6.1.3)的nuguet包安装了一些可以从nuget包管理器控制台执行的工具(如 AddMigration , Update-Database 等)。 )。如果您使用nuget并且加载了适当的.ps文件,则可以使用这些文件。
我正在解决我的项目&与paket而不是nuget的解决方案依赖关系,因此我无法使用这些命令。
是否可以选择执行这些脚本而无需返回nuget?
答案 0 :(得分:3)
正如@ErikEJ所提到的,您可以从命令行使用migrate.exe。不幸的是(来自文档):
所有实用程序的目的都是执行迁移。它无法生成迁移或创建SQL脚本。
因此,您可以运行任何现有迁移,但无法使用此工具创建任何新迁移。这使得migrate.exe成为EF在Package Manager Explorer中提供的工具的替代品。
我尝试在程序包管理器控制台中手动导入EntityFramework.psd1文件:
PM> Import-Module ".\packages\EntityFramework\tools\EntityFramework.psd1"
虽然这使得Enable-Migrations命令可用,但运行它会产生以下错误:
没有安装软件包。
项目' Foo'上没有安装EntityFramework包。
我猜这可以用EF7更好地工作。但就目前而言,看起来我要么完全抛弃paket,要么让Paket和Nuget的frankenstein完成这项工作。
答案 1 :(得分:0)
是的,您从命令行运行migrate.exe,它包含在Tools文件夹中的NuGet包中。
答案 2 :(得分:0)
来自Paket问题Entity Framework code-first migrations:
在我在paket.dependencies中添加version_in_path:true之前,EF命令不会出现在VS控制台中。
nuget EntityFramework ~> 6.2 version_in_path: true