在EF 6中缺少QueryableExtensions
我无法调用EntityFramework 6提供的新QueryableExtensions
( ToListAsync
, ForEachAsync
,…)但我可以调用其他人( 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
。
您的一个项目可能是针对旧版本的.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.5 , QueryableExtensions
类仍然不包含异步方法,因为该包是在迁移之前安装的。
只需重新安装Entity Framework包。