ASP.Net 5类库包中的EntityFramework命令?

Mat*_*ete 10 entity-framework-core .net-core asp.net-core

我正在尝试开发我的第一个ASP.Net Web应用程序,在我的解决方案中,我有两个项目.A Web Application和Class Library (Package).当我构建这个应用程序的ASP.Net 4.5版本时,我将我的Entity Framework 6实体放入一个类库中,所以我在ASP.Net 5版本中这样做.问题是,当我安装EntityFramework.Commands到类库时,我收到错误:

Project DBEntities中的依赖项EntityFramework.Command 7.0.0-rc1-final不支持框架.NetPlatform,Version = 5.4

我从认识这太问题是,dotnet5.4是新的.NET 5这是应该由EF7支持.

这是我的project.json档案:

{
  "version": "1.0.0-*",
  "description": "FFInfo.DAL Class Library",
  "authors": [ "Mathew" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",
    "frameworks": {
        "dotnet5.4": {
            "dependencies": {
                "Microsoft.CSharp": "4.0.1-beta-23516",
                "System.Collections": "4.0.11-beta-23516",
                "System.Linq": "4.0.1-beta-23516",
                "System.Runtime": "4.0.21-beta-23516",
                "System.Threading": "4.0.11-beta-23516"
            }
        }
    },
    "dependencies": {
        "EntityFramework.Commands": "7.0.0-rc1-final",
        "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final"
    }
}
Run Code Online (Sandbox Code Playgroud)

我是否安装了错误的软件包,EF7改变了很多,以至于我错误地构建了类,或者我在json文件中遗漏了什么?

编辑:基于建议的新project.json文件

{
    "version": "1.0.0-*",
    "description": "FFInfo.DAL Class Library",
    "authors": [ "Mathew" ],
    "tags": [ "" ],
    "projectUrl": "",
    "licenseUrl": "",
    "frameworks": {
        "dotnet5.4": {
            "dependencies": {
                "Microsoft.AspNet.Hosting.Abstractions": "1.0.0-*",
                "Microsoft.Dnx.Runtime": "1.0.0-*",
                "Microsoft.Extensions.CommandLineUtils.Sources": {
                    "version": "1.0.0-*",
                    "type": "build"
                },
                "Microsoft.Extensions.PlatformAbstractions": "1.0.0-*",
                "System.Console": "4.0.0-*",
                "System.IO.FileSystem": "4.0.1-*"
            }
        },
        "netcore50": {
            "bin": {
                "assembly": "lib\\netcore50\\_._"
            }
        },
        "dependencies": {
            "EntityFramework.Commands": "7.0.0-rc1-final",
            "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Ole*_*leg 15

我想你问题的原因有纯粹的技术性质.该公告宣布将dnx451重命名为net451,将dnxcore50重命名为dotnet5.4,但建议仅对类库(例如,您在NuGet上公开与其他人共享)使用此类重命名.如果我理解正确,你开发的应用程序使用类库,因此你应该使用dnxcore50而不是dotnet5.4.因此,您只需将字符串"dotnet5.4"重命名为字符串"dnxcore50" in the fileproject.json`即可解决问题.

独立于上述建议我想添加我对你的问题的理解,为什么你得到关于EntityFramework.Command 7.0.0-rc1-final的错误.

我理解将框架重命名为迈向未来计划微软计划的一步.另一方面,框架的所有名称将被解释为不同的名称.我建议您从https://www.nuget的相应信息中比较https://www.nuget.org/packages/EntityFramework.Commands/7.0.0-rc1-final页面上显示的依赖关系信息. org/packages/EntityFramework.MicrosoftSqlServer/7.0.0-rc1-final.EntityFramework.MicrosoftSqlServer(在使用上没有问题dotnet5.4)的依赖关系看起来像在图片上

在此输入图像描述

我标记了阅读负责的部分dotnet5.4.另一方面,依赖关系EntityFramework.Commands如下图所示:

在此输入图像描述

其中没有对应新名称的".NETPlatform 5.4"部分dotnet5.4.

我想,这是一个错误的部分中project.json的EntityFramework.Commands:

"netcore50": {
  "bin": {
    "assembly": "lib\\netcore50\\_._"
  }
}
Run Code Online (Sandbox Code Playgroud)

我想必须在行中更改netcore50为正确dotnet5.4支持新框架名称dotnet5.4.一个人可以替换"netcore50"副本的内容dnxcore50(见行):

"dotnet5.4": {
  "dependencies": {
    "Microsoft.AspNet.Hosting.Abstractions": "1.0.0-*",
    "Microsoft.Dnx.Runtime": "1.0.0-*",
    "Microsoft.Extensions.CommandLineUtils.Sources": {
      "version": "1.0.0-*",
      "type": "build"
    },
    "Microsoft.Extensions.PlatformAbstractions": "1.0.0-*",
    "System.Console": "4.0.0-*",
    "System.IO.FileSystem": "4.0.1-*"
  }
}
Run Code Online (Sandbox Code Playgroud)

也许应该事件增加上面提到的dll文件的一些版本号,但你仍然会无法使用EntityFramework.Commands下"dotnet5.4",直到新的固定版本将予以公布.

更新:我向EntityFramework开发团队提出了这个问题.在我得到它之后,我将包括微软对这个问题的回应.