Cómo obtener ObjectResult desde Entity Framework usando una lista de identidades

c# entity-framework

Pregunta

Tengo un HashSet de valores de identidad que necesito usar como valores de consulta para devolver un ObjectResult del Entity Framework

Aquí está el HashSet:

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

Aquí está la consulta que estoy tratando de ejecutar más o menos:

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

La parte "office => office IN officeIds.ToList ()" de lo que antecede es lo que no puedo trabajar y no he encontrado ninguna muestra en la web para recuperar objetos a partir de una lista de claves principales.

ctx es el System.Data.Objects.ObjectContext

Respuesta aceptada

Los ejemplos que otros han dado no funcionarán en Entity Framework hoy, porque no se pueden combinar enumeración de clientes y servidores en las entidades LINQ 2.

En su lugar, necesita construir una expresión OR, manualmente.

Ejecuto una serie de consejos de EF y este consejo te muestra cómo construir una expresión OR.

Espero que esto ayude

Alex


Respuesta popular

Muchas veces he tenido problemas similares, otra pregunta de desbordamiento de pila con buena información es: ¿ La forma más eficiente de obtener múltiples entidades por clave principal?

Prefiero usar:

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


Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué