entity-framework-6 - Entity Framework 代码优先迁移包

标签 entity-framework-6 nuget paket

EntityFramework (6.1.3) 的 nuguet 包安装了一些可以从 nuget 包管理器控制台执行的工具(例如 AddMigrationUpdate-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/

相关文章:

c# - 使用 Microsoft EntityFramework 进行单元测试

c# - 使用 EF6 的类构造函数中的 List<xx> 和 HashSet<xx> 有什么区别?

database - 在 Code First 中包含外键 ID 以保存查询?

.net - <TargetFramework> 和 <RuntimeFrameworkVersion> 有什么区别?

paket - 在 paket.dependency 文件中,运算符 `==` 的含义是什么?

nuget - Paket include-referenced-projects 与项目引用

c# - EF Code First CREATE DATABASE 权限在数据库 'master' 中被拒绝

c# - 具有相关项目的本地开发的 nuget

xamarin - 更新 Xamarin 时出现问题 : unable to resolve dependencies

f# - Packet框架限制差异