Básicamente quiero unir dos Iqueryable a uno Iqueryable y luego devolver el conjunto de registros completo después de que termine el ciclo. Funciona perfectamente, pero al final mi objret no tiene nada, pero cuando depuro el bucle obj tengo algunos registros. WHT im haciendo malProblema al crear el objeto IQueryable <T> vacío
IQueryable<MediaType> objret = Enumerable.Empty<MediaType>().AsQueryable();
var typ = _db.MediaTypes.Where(e => e.int_MediaTypeId != 1 && e.int_MediaTypeId_FK == null).ToList();
for (int i = 0; i < typ.Count; i++)
{
IQueryable<MediaType> obj = _db.MediaTypes.Where(e => e.bit_IsActive == true && e.int_MediaTypeId_FK == typ[i].int_MediaTypeId);
IQueryable<MediaType> obj1 = _db.MediaTypes.Where(e => e.int_OrganizationId == Authorization.OrganizationID && e.bit_IsActive == true && e.int_MediaTypeId_FK == typ[i].int_MediaTypeId);
if (obj1.Count() > 0)
obj.Concat(obj1);
if(obj.Count() > 0)
objret.Concat(obj);
}
return objret;
lo cambio para crear una lista y funciona Gracias. –
Este enfoque genera 4 viajes de ida y vuelta a la base de datos para cada iteración en el for-loop ... Eso es un posible problema de rendimiento si me preguntas (aunque obviamente depende del tamaño real de la tabla, por supuesto). – jeroenh
@jeroenh: Sí, estaba dando a entender que no necesita usar 'Count()' en absoluto. Lo aclararé. –