asp.net-core – ASP.Net 5类库中的EntityFramework命令?

前端之家收集整理的这篇文章主要介绍了asp.net-core – ASP.Net 5类库中的EntityFramework命令?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试开发我的第一个ASP.Net Web应用程序,在我的解决方案我有两个项目. Web应用程序和类库(Package).当我构建这个应用程序的ASP.Net 4.5版本时,我将我的Entity Framework 6实体放在一个类库中,所以我在ASP.Net 5版本中这样做.问题是当我安装EntityFramework.Commands到类库我得到的错误

The dependency EntityFramework.Command 7.0.0-rc1-final in Project DBEntities does not support framework .NetPlatform,Version = 5.4

我从this SO question的理解是,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"
    }
}

我安装了错误的包,EF7是否改变了这么多,我正在建立类错误,或者我在我的json文件中缺少某些东西?

编辑:
根据建议的新的project.json文件

{
    "version": "1.0.0-*","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"
        }
    }
}

解决方法

我想你的问题的原因是纯粹的技术性质. The announcement声明将dnx451重命名为net451,将dnxcore50重命名为dotnet5.4,但建议仅对类库使用此类重命名(例如,NuGet上公布的其他内容可以与其他人共享).如果我正确理解你,那么你开发使用类库的应用程序,因此你应该使用dnxcore50而不是dotnet5.4.因此,您只需将字符串“dotnet5.4”重命名为fileproject.json中的字符串“dnxcore50”即可解决问题.

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

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

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

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

我想这是EntityFramework.Commands的project.json的the part中的一个错误

"netcore50": {
  "bin": {
    "assembly": "lib\\netcore50\\_._"
  }
}

我想,必须将netcore50更改为dotnet5.4,以正确支持新的框架名称dotnet5.4.一个可以将“netcore50”的内容替换为dnxcore50的副本(参见the lines):

"dotnet5.4": {
  "dependencies": {
    "Microsoft.AspNet.Hosting.Abstractions": "1.0.0-*","Microsoft.Extensions.CommandLineUtils.Sources": {
      "version": "1.0.0-*","type": "build"
    },"System.IO.FileSystem": "4.0.1-*"
  }
}

可能一个事件会增加上面提到的dll的一些版本号,但是你仍然不能在“dotnet5.4”下使用EntityFramework.Commands,直到新的固定版本被发布.

UPDATED:我向EntityFramework开发团队提出了the issue.我会收到微软对此问题的回复.

猜你在找的asp.Net相关文章