Come ottenere ObjectResult da Entity Framework utilizzando un elenco di identità

c# entity-framework

Domanda

Ho un valore HashSet of Identity che devo usare come valori della query per restituire un ObjectResult da Entity Framework

Ecco l'Hashset:

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

Ecco la query che sto cercando di eseguire più o meno:

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

La parte "office => office IN officeIds.ToList ()" di cui sopra è ciò che non riesco a far funzionare e non ho trovato alcun campione sul web per la returing degli oggetti con un elenco di chiavi primarie.

ctx è System.Data.Objects.ObjectContext

Risposta accettata

Gli esempi forniti da altri utenti non funzioneranno in Entity Framework oggi, perché non è possibile combinare enumerazioni client e serveride in Entità LINQ 2.

Invece è necessario creare un'espressione OR manualmente.

Eseguo una serie di suggerimenti EF e questo suggerimento mostra come costruire un'espressione OR.

Spero che questo ti aiuti

alex


Risposta popolare

Ho avuto problemi simili un sacco di volte, un'altra domanda di Stack Overflow con buone informazioni è la seguente: Il modo più efficace per ottenere più entità con la chiave primaria?

Preferisco usare:

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


Related

Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché