2016-09-28 96 views
2

由于EF核心迁移到Microsoft.EntityFrameworkCore.*(而不是EntityFramework.*),似乎推荐添加数据库迁移的命令行从包管理器返回到add-migration实体框架核心1.0.1添加迁移

ef core add migration documentation

但是似乎没有一个封装了对命令和v 1.0.1的包安装不添加任何命令。

运行Add-Migration时,我得到的错误信息是因为EntityFramework.Commands没有安装在启动项目“项目名称”

不能执行此命令。

我错过了什么吗?有没有新的方式来添加这些命令?谢谢你的帮助!

+0

您不应该通过软件包管理器来实现此目的,而是通过标准cmd – cdie

+0

doc指示使用软件包管理器控制台,并且当我使用标准命令行(ps/cmder)时,该cmdlet未被识别 – baywet

+0

基于标准cmd,你应该做'dotnet迁移添加MigrationName',使其工作(一定要在DbContext和你的对象所在的文件夹内) – cdie

回答

6

为了在.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" 
    } 
} 

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

+0

感谢您的回答,我正准备将我的评论凝聚在这里。我还必须根据@tseng指出的文档使用解决方法,如果他不这样做,我会这样做 – baywet