martes, 29 de abril de 2014

First Sequence contains no elements

En linq cuando quieres que la consulta retorne 1 solo resultado usas firts Ejemplo:

  var query = (from c in db.customers 
               where c.customerid == 1 
               select c).ToList().First();


El problema es que si la consulta no retorna ninguna nada dará un error:

Sequence contains no elements

Soluciones:

1.) Puedes agregar un try and catch (Mala idea)

try 
{ 
    var query = (from c in db.customers 
                         where c.customerid == 1 
                         select c).ToList().First(); } 
catch (Exception) 
 {                      
      throw; 
 }  



2.) Puedes cambiar tu "First" por un "FirstOrDefault" cuando la consulta no tenga registros dejara la variable query como nulo y no dará error.



  var query = (from c in db.customers 
               where c.customerid == 1 
               select c).ToList().FirstOrDefault();

No hay comentarios.: