martes, 4 de junio de 2013

LINQ Excepción "La secuencia no contiene elementos"

En una consulta LINQ que no devuelve ningún resultado y utilizamos la función First() se presenta la excepcion, “InvalidOperationException: La secuencia no contiene elementos”. Para resolver esto podemos utilizar la función FirstOrDefault().

18 comentarios:

  1. Respuestas
    1. De nada Carlos un placer poder haber sido de ayuda. Seguiré posteando los problemas que me vayan ocupando para cuando le pasen a otros usuarios como tu. Un saludo.

      Eliminar
  2. Genio! Solucion rapida y consisa!

    ResponderEliminar
    Respuestas
    1. Gracias Adam un saludo. Vuelve cuando quieras por el blog para echar un ojo o plantea tus dudas.

      Eliminar
  3. no entiendo donde tengo que colocar la funcion FirstOrDefault

    ResponderEliminar
    Respuestas
    1. Hola Willians,

      la funcion First() se utiliza para que devuelva el primer valor que cumpla una condicion por ejemplo. Supongamos que tiene un contexto definido que contiene una tabla de clientes y quieres el primer cliente con un identificador que tu conoces.

      Tendrías algo como...

      pruebasEntities miContext = new pruebasEntities();

      clientes variable_tabla_cliente = miContext.clientes.First(i=> i.ID == ID_DEL_CLIENTE)

      pero esta funcion si no existe ningun cliente con ID = ID_DEL_CLIENTE devuelve el error explicado. Para ello usamos FirstOrDefault para evitar el error.

      Espero que haya quedado claro.
      Gracias por pasar por el blog. Vuelve cuando quieras

      Eliminar
  4. Respuestas
    1. Si ya estas usando la función "First" cambiala por "FirstOrDefault()".

      Si no, usando notación entity la sintaxis sería algo como esto:

      objeto_contexto.objecto_tabla.FirstOrDefault( i => i.CODIGO == 1)

      Espero que te pueda ayudar esto.

      Eliminar
  5. Muchas gracias sigue con esos grandes aportes

    ResponderEliminar
    Respuestas
    1. Gracias a tí Luis Alberto por compartir con nosotros tu experiencia de que te ha sido útil. Eso me hace continuar con ilusión. ¡Saludos!

      Eliminar
  6. aún sigue el error..
    'context.FrmMenuItems.Where(x => x.ControllerName == "DistriHogar").FirstOrDefault()' inició una excepción de tipo 'System.InvalidOperationException' BddFrm.Context.FrmMenuItem {System.InvalidOperationException}

    ResponderEliminar
  7. resolví este problema quitando mis tipos de datos de varchar() de cada tabla.

    ResponderEliminar
  8. Gracias estimado por tu ayuda, mira van 7 años que publicaste tu ayuda, muchas Gracias!!!

    ResponderEliminar
  9. Buenas tengo el siguiente codigo (_context.CompanyConfigurations.FirstOrDefault(x => x.Ready).Ready == false) si es false se regirige a una accion y si es true a otra... sin embargo si la base de datos esta vacia me genera un error... COmo puedo resolver esto

    ResponderEliminar

Jesús Moreno - Ingeniero Ténico Informático - consultor Informático

Hola, soy Jesús Moreno Ingeniero Técnico Informático en sistemas por la US y propietario de éste blog. Mi trabajo en los ultimos años se ...