在EF 6中缺少QueryableExtensions

我无法调用EntityFramework 6提供的新QueryableExtensionsToListAsyncForEachAsync ,…)但我可以调用其他人( IncludeIntersect )。

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

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

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

编辑

entity framework已安装: EF已安装

我已经尝试卸载然后重新安装包多次,重新启动visual studio。 还是行不通

编辑

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

您的一个项目可能是针对旧版本的.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) 

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

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

看一下MSDN上的QueryableExtensions

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

 install-package EntityFramework 

或使用更新命令

 Update-Package –reinstall EntityFramework 

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

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

只需重新安装Entity Framework包。