EntityFramework (6.1.3) 的 nuguet 包安装了一些可以从 nuget 包管理器控制台执行的工具(例如 AddMigration、Update-Database 等)。 )。如果您使用 nuget 并且加载了适当的 .ps 文件,则这些可用。
我正在使用 paket 解决我的项目和解决方案依赖关系而不是 nuget,所以这些命令对我来说不可用。
是否有其他方法可以执行这些脚本而无需返回 nuget?
最佳答案
正如 @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>导入模块“.\packages\EntityFramework\tools\EntityFramework.psd1”
虽然这使得 Enable-Migrations 命令可用,但运行它会产生以下错误:
No packages installed.
The EntityFramework package is not installed on project 'Foo'.
我猜这一切在 EF7 下会更好地工作。但目前看来,我要么必须完全放弃 paket,要么拥有 Paket 和 Nuget 的弗兰肯斯坦才能让这项工作正常进行。
关于entity-framework-6 - Entity Framework 代码优先迁移包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34310888/