在EF 6中缺少QueryableExtensions

时间:2015-09-02 06:28:16

标签: c# wpf entity-framework extension-methods iqueryable

我无法调用EntityFramework 6提供的新QueryableExtensionsToListAsyncForEachAsync,...)但我可以调用其他人{Include,{ {1}})。

我引用了Intersect。 显然,我有一个较旧版本的System.Data.Entity,其中包含最新版本的EntityFramework。有可能吗?

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

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

修改

安装了实体框架: EF installed

我尝试卸载然后重新安装包多次,重新启动visual studio。仍然没有工作

修改

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

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

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

在MSDN上查看QueryableExtensions

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

install-package EntityFramework

或使用更新命令

Update-Package –reinstall EntityFramework

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

答案 2 :(得分:1)

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

只需重新安装Entity Framework包。