缺少实体框架包含(lambda)扩展

sha*_*non 55 .net lambda entity-framework

EF OjbectSet.Include(a => a.parent)扩展程序不可用.我知道我可以添加代码来模仿它,但根据EntityFramework 4升级到5,lambda不可用它应该可用.我有using System.Data.Entity,并在我的主项目升级到EF 5.

查看Assembly System.Data.Entity.dll,v4.0.0.0(C:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\System.Data.Entity.dll)中的元数据

...

public ObjectQuery<System.Data.Common.DbDataRecord> GroupBy(string keys, string projection, params ObjectParameter[] parameters);
public ObjectQuery<T> Include(string path);
public ObjectQuery<T> Intersect(ObjectQuery<T> query);
Run Code Online (Sandbox Code Playgroud)

此处包含lambda变体Include没有声明.我已经检查过,文件版本是4.0.30319.17929,根据数据库第一代实体框架5 System.Data.Entity vs EntityFramework.该项目正在生成4.5装配.

如果它是相关的,则EntityFramework本身不会在此程序集中引用.它只有一些数据服务,因此它包括对System.Data.Entity和主数据层项目的引用.

有任何想法吗?

Kha*_*han 128

根据MSDN,该方法在EntityFramework程序集中定义.(在EntityFramework.dll中)

您还需要添加对EntityFramework.dll DLL 的引用.

之后,您需要确保引用命名空间:

using System.Data.Entity;

  • +1,这没有回答我的问题,但是关于添加对`using System.Data.Entity`的引用的评论确实!! (23认同)
  • 哦,blarg.:) 谢谢.我想它在升级期间移动了. (2认同)
  • 值得指出的是,有不同的EntityFramework DLL可用.我在References中搜索并添加了我能找到的唯一一个,System.ServiceModel.DomainServices.EntityFramework(它没有用).我最终发现我需要安装.NET EntityFramework NuGet包. (2认同)