我无法调用 EntityFramework 6 提供的新的 QueryableExtensions
(ToListAsync
、ForEachAsync
,...)。但我可以调用其他(包含
、相交
)。
我有一个对 System.Data.Entity
的引用。
显然,我有一个旧版本的 System.Data.Entity
,以及最新版本的 EntityFramework。可能吗?
我的代码没有编译,我在对象浏览器中看不到 ForEachAsync
方法。
我正在使用 Visual Studio 2013、.Net 4.5、EntityFramework 6.1.3、Wpf。
编辑
我多次尝试卸载然后重新安装包,并重新启动 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)
您可能不需要重新安装该软件包,但我在检查它是否有效之前重新安装了它。
关于c# - EF 6 中缺少 QueryableExtensions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32346016/