EntityFramework ASP.Net 5 Class 库包中的命令?
EntityFramework Commands in ASP.Net 5 Class Library Package?
我正在尝试开发我的第一个 ASP.Net Web 应用程序,在我的解决方案中有两个项目。一个 Web Application
和 Class Library (Package)
。当我构建此应用程序的 ASP.Net 4.5 版本时,我将我的 Entity Framework 6
实体放入 class 库中,所以我在 ASP.Net 5
版本中这样做。问题是当我将 EntityFramework.Commands
安装到 class 库时出现错误:
The dependency EntityFramework.Command 7.0.0-rc1-final in Project DBEntities does not support framework .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"
}
}
我是否安装了错误的包,是 EF7 更改太多以至于我构建 class 错误,还是我的 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"
}
}
}
我想你的问题的原因是纯技术性的。 The announcement 声明将 dnx451 重命名为 net451 并将 dnxcore50 重命名为 dotnet5.4,但有人建议将这种重命名 仅用于 class 库 (您在 NuGet 上发布的与他人分享的示例)。如果我理解正确的话,你开发的 application 使用 class 库,因此你应该使用 dnxcore50
而不是 dotnet5.4
。因此,您只需将字符串 "dotnet5.4" 重命名为字符串 "dnxcore50" in the file
project.json` 即可解决问题.
独立于上述建议,我想补充我对你的问题的理解,为什么你得到关于 EntityFramework.Command 7.0.0-rc1-final 的错误。
我理解框架的重命名是微软计划未来变革的一个步骤。另一方面,框架的所有名称都将被解释为不同的名称。我建议你比较页面https://www.nuget.org/packages/EntityFramework.Commands/7.0.0-rc1-final from the corresponding information from https://www.nuget.org/packages/EntityFramework.MicrosoftSqlServer/7.0.0-rc1-final上显示的依赖项信息。 EntityFramework.MicrosoftSqlServer
的依赖项(使用 dotnet5.4
没有问题)如图所示
我标记阅读负责 dotnet5.4
的部分。另一方面,EntityFramework.Commands
的依赖关系如下图所示:
其中没有与新名称对应的“.NETPlatform 5.4”部分 dotnet5.4
。
我想这是 the part of project.json
of EntityFramework.Commands
中的错误:
"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.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-*"
}
}
可能应该增加上面引用的 dll 的一些版本号,但是在发布新的固定版本之前,您仍然无法在 "dotnet5.4"
下使用 EntityFramework.Commands
。
更新: 我向 EntityFramework 开发团队提出了 the issue。我会在收到 Microsoft 对此问题的回复后附上它。
我正在尝试开发我的第一个 ASP.Net Web 应用程序,在我的解决方案中有两个项目。一个 Web Application
和 Class Library (Package)
。当我构建此应用程序的 ASP.Net 4.5 版本时,我将我的 Entity Framework 6
实体放入 class 库中,所以我在 ASP.Net 5
版本中这样做。问题是当我将 EntityFramework.Commands
安装到 class 库时出现错误:
The dependency EntityFramework.Command 7.0.0-rc1-final in Project DBEntities does not support framework .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"
}
}
我是否安装了错误的包,是 EF7 更改太多以至于我构建 class 错误,还是我的 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"
}
}
}
我想你的问题的原因是纯技术性的。 The announcement 声明将 dnx451 重命名为 net451 并将 dnxcore50 重命名为 dotnet5.4,但有人建议将这种重命名 仅用于 class 库 (您在 NuGet 上发布的与他人分享的示例)。如果我理解正确的话,你开发的 application 使用 class 库,因此你应该使用 dnxcore50
而不是 dotnet5.4
。因此,您只需将字符串 "dotnet5.4" 重命名为字符串 "dnxcore50" in the file
project.json` 即可解决问题.
独立于上述建议,我想补充我对你的问题的理解,为什么你得到关于 EntityFramework.Command 7.0.0-rc1-final 的错误。
我理解框架的重命名是微软计划未来变革的一个步骤。另一方面,框架的所有名称都将被解释为不同的名称。我建议你比较页面https://www.nuget.org/packages/EntityFramework.Commands/7.0.0-rc1-final from the corresponding information from https://www.nuget.org/packages/EntityFramework.MicrosoftSqlServer/7.0.0-rc1-final上显示的依赖项信息。 EntityFramework.MicrosoftSqlServer
的依赖项(使用 dotnet5.4
没有问题)如图所示
我标记阅读负责 dotnet5.4
的部分。另一方面,EntityFramework.Commands
的依赖关系如下图所示:
其中没有与新名称对应的“.NETPlatform 5.4”部分 dotnet5.4
。
我想这是 the part of project.json
of EntityFramework.Commands
中的错误:
"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.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-*"
}
}
可能应该增加上面引用的 dll 的一些版本号,但是在发布新的固定版本之前,您仍然无法在 "dotnet5.4"
下使用 EntityFramework.Commands
。
更新: 我向 EntityFramework 开发团队提出了 the issue。我会在收到 Microsoft 对此问题的回复后附上它。