我无法调用EntityFramework 6提供的新QueryableExtensions
(ToListAsync
,ForEachAsync
,...)但我可以调用其他人{Include
,{ {1}})。
我引用了Intersect
。
显然,我有一个较旧版本的System.Data.Entity
,其中包含最新版本的EntityFramework。有可能吗?
我的代码无法编译,我无法在对象浏览器中看到System.Data.Entity
方法。
我正在使用Visual Studio 2013,.Net 4.5,EntityFramework 6.1.3,Wpf。
修改
我尝试卸载然后重新安装包多次,重新启动visual studio。仍然没有工作
修改
在另一个项目(由此引用)中,我可以看到对象浏览器中需要的ForEachAsync
。如果我将此项目添加到我的解决方案中(在它只是一个引用之前),则对象浏览器中缺少所需的IQueryableExtensions
。
答案 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包。