【问题标题】:Entity Framework Core 1.0.1 add-migrationEntity Framework Core 1.0.1 添加迁移
【发布时间】:2017-02-06 15:38:43
【问题描述】:

由于 EF Core 迁移到 Microsoft.EntityFrameworkCore.*(而不是 EntityFramework.*),看来添加 db 迁移的推荐命令行从包管理器返回到 add-migration

ef core add migration documentation

但是,似乎不再有命令包,并且 v 1.0.1 的包安装没有添加任何命令。

我在运行Add-Migration 时收到的错误消息是

无法执行此命令,因为启动项目“项目名称”中未安装 EntityFramework.Commands。

我错过了什么吗?有没有一种新的方法来添加命令?感谢您的帮助!

【问题讨论】:

  • 你不应该通过包管理器来实现这一点,而是通过标准 cmd
  • 文档指示使用包管理器控制台,当我使用标准命令行(ps / cmder)时,无法识别 cmdlet
  • 基于标准 cmd,您应该执行 'dotnet migrations add MigrationName' 以使其正常工作(确保在您的 DbContext 和您的对象所在的文件夹中执行此操作)
  • 这是我大约一个月前迁移到 dot net 标准之前的习惯,现在当我这样做时,我得到 No executable found matching command "dotnet-migrations" 我想我的项目中缺少迁移命令.json 和/或命令包,但两者都无处可寻,文档指示使用 PS cmdlet,如 .net 经典
  • 抱歉,dotnet ef 迁移添加 MigrationName。您还应该在 project.json 中安装包“Microsoft.EntityFrameworkCore.Tools”到工具部分

标签: asp.net-core entity-framework-core


【解决方案1】:

为了在 .NET Core 项目上使用包管理器控制台命令(例如 Add-Migration),您的 project.json 需要看起来像这样。

{
    "dependencies": {
        "Microsoft.EntityFrameworkCore.Sqlite": "1.0.1",
        "Microsoft.EntityFrameworkCore.Tools": {
            "version": "1.0.0-preview2-final",
            "type": "build"
        }
    },
    "tools": {
        "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
    }
}

dependencies 下的 Microsoft.EntityFrameworkCore.Tools 确保 PowerShell 命令被注册。 "type": "build" 确保它们不会随您的应用程序一起发布。 dependencies 下的 Microsoft.EntityFrameworkCore.Tools 确保 dotnet ef 命令被注册(由 PowerShell 命令调用)。

【讨论】:

  • 感谢您的回答,我正准备将我的评论浓缩到这里。正如@tseng 所指出的,我还必须使用文档中的解决方法,如果他不这样做,我会这样做
猜你喜欢
  • 1970-01-01
  • 2019-01-11
  • 2017-06-17
  • 1970-01-01
  • 2018-06-08
  • 1970-01-01
  • 2017-10-27
  • 1970-01-01
  • 2021-07-26
相关资源
最近更新 更多