EF 7 .NET Core工具错误

ale*_*xjk 11 entity-framework-core .net-core asp.net-core

我用dotnet new -t lib命令创建了一个新的.NET Core项目.它是我的EF Context的类库.这是我的project.json:

    {
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable"
  },
  "dependencies": {},
  "frameworks": {
    "netstandard1.6": {
      "dependencies": {
        "NETStandard.Library": "1.6.0",
        "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0",
        "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

当我运行dotnet restore命令时,我收到此错误:

error: Package Microsoft.EntityFrameworkCore.Tools 1.0.0-preview2-final is not compatible with netstandard1.6 (.NETStandard,Version=v1.6). Package Microsoft.EntityFrameworkCore.Tools 1.0.0-preview2-final supports:
Run Code Online (Sandbox Code Playgroud)

如何在netstandard1.6中使用EF Code First?

Ham*_*lla 14

根据这个,"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"应该在project.json的工具部分注册:

{
"version": "1.0.0-*",
"description": "Class Library",
"frameworks": {
  "netstandard1.6": {
   "imports": [
     "dnxcore50"
   ]
 }
},

 "dependencies": {
 "NETStandard.Library": "1.6.0",
 "Microsoft.EntityFrameworkCore": "1.0.0",
 "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0"
},
"tools": {
  "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
 }
}
Run Code Online (Sandbox Code Playgroud)

使用导入也是一个好主意,因为一些EF Core的依赖项仍然不支持.NETStandard,但在我的情况下,我检查了它,即使没有导入它也能正常工作.

关于Johan B的评论,其中指出ef工具目前不能与类库一起使用,部分通过使用--startup-project变通方法解决,例如:dotnet ef --startup-project ../ProjectThatCanRunCommand/ migrations add InitDb,更多信息:参数化dotnet-ef使用的目录.