如何使用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

一般承認的答案

其他人給出的示例今天在Entity Framework中不起作用,因為您無法在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合法嗎? 是的,了解原因