如何使用Identities列表从Entity Framework获取ObjectResult

c# entity-framework

我有一个HashSet的Identity值,我需要将其用作查询值以从Entity Framework返回ObjectResult

这是HashSet:

HashSet<int> officeIds = new HashSet<int>();

这是我试图或多或少地运行的查询:

ObjectResult<FilingOffice> offices = ctx.FilingOffice.Where(office => office IN officeIds.ToList());

以上部分的“office => office IN officeIds.ToList()”部分是我无法工作的,并且在给定主键列表的情况下没有在Web上找到任何用于返回对象的样本。

ctx是System.Data.Objects.ObjectContext

一般承认的答案

其他人给出的示例今天在实体框架中不起作用,因为您无法在LINQ 2实体中混合客户端和服务器端枚举。

相反,您需要手动构建OR表达式。

我运行了一系列EF提示这个技巧向您展示了如何构建OR表达式。

希望这可以帮助

亚历克斯


热门答案

我有很多次类似的问题,另一个有良好信息的Stack Overflow问题是: 通过主键获取多个实体的最有效方法?

我更喜欢使用:

var entities = db.Entities.WhereIn(x => x.Id, ids);



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因