缺少实体框架包含(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)扩展的主要内容,如果未能解决你的问题,请参考以下文章
在 Visual Studio 2015 中安装实体框架缺少支持的标签
使用 Node 从 Lambda 查询 Dynamodb - 缺少键
AWS Lambda Python 3.7:无法导入模块'lambda_function':缺少必需的依赖项['numpy']