So erhalten Sie ObjectResult von Entity Framework mithilfe einer Liste von Identitäten

c# entity-framework

Frage

Ich habe einen HashSet of Identity-Wert, den ich als Abfragewerte verwenden muss, um ein ObjectResult aus dem Entity Framework zurückzugeben

Hier ist das HashSet:

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

Hier ist die Abfrage, die ich mehr oder weniger ausführen möchte:

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

Der Teil "office => office IN officeIds.ToList ()" ist das, was ich nicht zur Arbeit bekomme und keine Proben im Web gefunden habe, um Objekte anhand einer Liste von Primärschlüsseln zurückzuholen.

ctx ist der System.Data.Objects.ObjectContext

Akzeptierte Antwort

Die Beispiele, die andere gegeben haben, funktionieren heute nicht mehr in Entity Framework, da in LINQ 2-Entitäten keine Aufzählungen von Clients und Serverseiten möglich sind.

Stattdessen müssen Sie einen ODER-Ausdruck manuell erstellen.

Ich führe eine Reihe von EF-Tipps aus und dieser Tipp zeigt Ihnen, wie Sie einen ODER-Ausdruck aufbauen.

Hoffe das hilft

Alex


Beliebte Antwort

Ich hatte schon oft ähnliche Probleme. Eine andere Stack Overflow-Frage mit guten Informationen lautet: Die effizienteste Methode, um mehrere Entitäten nach Primärschlüssel zu erhalten

Ich bevorzuge:

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


Related

Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum