EF 6 中缺少 QueryableExtensions

Missing QueryableExtensions in EF 6

我不能调用新的 QueryableExtensions (ToListAsync, ForEachAsync,...) EntityFramework 6. 但是我可以调用其他的 (Include, Intersect).

我参考了 System.Data.Entity。 显然,我有一个旧版本的 System.Data.Entity,以及最新版本的 EntityFramework。可能吗?

我的代码无法编译,我在对象浏览器中看不到 ForEachAsync 方法。

我正在使用 Visual Studio 2013,.Net 4.5,EntityFramework 6.1.3,Wpf。

编辑

Entity framework 已安装:

我多次尝试卸载然后重新安装软件包,并重新启动 visual studio。仍然无法正常工作

编辑

在另一个项目(本项目引用)中,我可以在对象浏览器中看到需要的IQueryableExtensions。如果我将这个项目添加到我的解决方案中(之前它只是一个参考),对象浏览器中缺少所需的 IQueryableExtensions

您需要参考 EntityFramework.dll。手动删除对 System.Data.Entity.dll 的引用(如果存在)。

在 MSDN

上查看 QueryableExtensions

使用 Nuget 应该很简单,因为这将为您添加依赖项

install-package EntityFramework

或使用更新命令

Update-Package –reinstall EntityFramework

这将安装最新版本的 Entity Framework (6.1.3)

您的一个项目可能针对旧版本的 .net 框架。

当一个项目以 .Net v4.0 为目标时,我遇到了这个问题,请将其更新到 4.5 或更新版本。 之后我也运行别人推荐的命令

update-package -reinstall EntityFramework 

当您在包控制台中 运行 update-package 命令时,您可以看到目标的 .Net 版本。例如我的项目以 4.0

为目标时的输出
PM> Update-Package –reinstall EntityFramework
Attempting to gather dependencies information for multiple packages with respect to project '[My project]', targeting '.NETFramework,Version=v4.0'

然后是 v4.5.2:

PM> Update-Package –reinstall EntityFramework
Attempting to gather dependencies information for multiple packages with respect to project '[My Project]', targeting '.NETFramework,Version=v4.5.2'

您通过以下方式更新您的 .net 版本:

right clicking on the project in the solution explorer, 
choosing "Properties"
on the Application Tab (default) from the DropDown list labeled "Target Framework" select 4.5 (or greater - I chose 4.5.2)

您可能不需要重新安装该软件包,但我在检查它是否有效之前重新安装了它。

当您的项目面向 .NET v4.0 时,您可能已经安装了 EntityFramework 包。即使您已将项目迁移到 .NET v4.5QueryableExtensions class 仍然不包含异步方法,因为该包是在迁移之前安装的。

只需重新安装 Entity Framework 软件包。