15

目前我在 Visual Studio 2012 中安装了 Entity Framework 5.0。出于某种原因,该项目仅受 EF 4.4.0.0 支持。

所以我安装了 EF 4.4.0.0 但在 Nuget 命令行中出现错误:

PM> Install-Package EntityFramework -Version 4.4.0.0 Install-Package:找不到包“EntityFramework”的“4.4.0.0”版本。在 line:1 char:1 + Install-Package EntityFramework -Version 4.4.0.0 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Install-Package], InvalidOperationException + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand

下午>

4

3 回答 3

26

您看到的版本控制问题是由于 EF 可以支持的内容不同,具体取决于您的应用程序所针对的 .NET 运行时版本。

如果您的目标是 .NET 4 并安装 EF 5,则程序集版本将为 4.4

如果您的目标是 .NET 4.5 并安装 EF 5,则程序集版本将为 5.0

这是因为诸如 DBGeography 之类的东西只有在存在 .NET 4.5 时才能工作。

只需正确安装 EF 5,NuGet 包就会解决这个问题并为您提供正确的版本。

于 2013-01-23T19:48:19.220 回答
8

tl;tr 当您需要 .NET 4.0 上的程序集版本 4.4.0.0 时,只需在包管理器控制台中键入:

PM> Install-Package EntityFramework -Version 5.0.0.0
于 2015-03-09T07:56:16.700 回答
6

好的,所以这里的交易是 EF 5 仅受 .net 4.5 项目支持(即没有 .net 4)。但是,如果您有一个 .NET 4 项目并尝试安装 EF 5,他们所做的就是为您提供另一个与 .NET 4 一起运行的二进制文件(称为 EF 4.4)。

这意味着您需要做的就是安装 EF 5 包,您将获得正确的 (4.4) 版本的 EF。

有关 EF 团队的更多信息,请参阅http://brice-lambson.blogspot.ca/2012/10/unicorn-myths-debunked-entity-framework.html

于 2013-01-23T19:47:35.013 回答