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

Posted

技术标签:

【中文标题】缺少实体框架包含(lambda)扩展【英文标题】:Missing Entity Framework Include(lambda) extension 【发布时间】:2013-10-08 02:38:59 【问题描述】:

EF OjbectSet.Include(a => a.parent) 扩展不可用。我知道我可以添加代码来模仿它,但根据EntityFramework 4 upgraded to 5, lambda is not available 它应该是可用的。我有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);

这里没有声明 Include 的 lambda 变体。我检查过,文件版本是 4.0.30319.17929,根据 Database first generation Entity Framework 5 System.Data.Entity vs EntityFramework 。该项目正在生成一个 4.5 程序集。

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

有什么想法吗?

【问题讨论】:

你的代码文件顶部有using System.Data.Entity吗? 是的。我会在上面的 cmets 中更清楚地说明这一点。谢谢汗。 如果你加载了一个类似的项目,你能告诉我你看到的“包含”的元数据吗? ReSharper 在构建 lambda 包含时不会自动识别您需要使用 System.Data.Entity,它必须手动添加或由其他进程添加。 JabberwockyDecompiler - 你为我节省了一天。再次,信任太多,甚至不认为我需要参考using System.Data.Entity。原来我确实做到了!再次感谢 - +1 您的评论 【参考方案1】:

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

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

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

using System.Data.Entity;

【讨论】:

哦,废话。 :) 谢谢。我想它在升级过程中移动了。 +1,这并没有回答我的问题,但是关于添加对 using System.Data.Entity 的引用的 cmets 做到了!! 值得指出的是,有不同的 EntityFramework DLL 可用。我在 References 中搜索并添加了我能找到的唯一一个 System.ServiceModel.DomainServices.EntityFramework(它不起作用)。我最终发现我需要安装 .NET EntityFramework NuGet 包。

以上是关于缺少实体框架包含(lambda)扩展的主要内容,如果未能解决你的问题,请参考以下文章

实体框架左外连接和分组:ORA-00907:缺少右括号

在 Visual Studio 2015 中安装实体框架缺少支持的标签

实体框架 6 - 数据库优先 - 缺少字符串长度属性

使用 Node 从 Lambda 查询 Dynamodb - 缺少键

AWS Lambda Python 3.7:无法导入模块'lambda_function':缺少必需的依赖项['numpy']

类型错误:<lambda>() 缺少 1 个必需的位置参数:'w'