entityframework代码优先迁移paket

时间:2015-12-16 11:30:15

标签: entity-framework-6 nuget paket

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

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

是否可以选择执行这些脚本而无需返回nuget?

3 个答案:

答案 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包中。

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

答案 2 :(得分:0)

来自Paket问题Entity Framework code-first migrations

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

nuget EntityFramework ~> 6.2 version_in_path: true