2011-10-05 18 views

Respuesta

14

FirstOrDefault() es para cuando se espera que haya cero o más resultados en la colección de entrada y la llamada devuelve el primer elemento si hay varios resultados, Predeterminado si no hay ninguno.

SingleOrDefault() es para cuando se espera cero o un resultado en la colección de entrada y la llamada devuelve un resultado si hay exactamente un resultado presente, predeterminado si no hay resultados y excepción si hay más de un resultado.

7

SingleOrDefault arrojará una excepción "La secuencia contiene más de un elemento" si existe más de un elemento.

0

FirstOrDefault que tomará el número de filas, sino que acaba de regresar primero del mismo, si es nula que puede manejar la excepción En primer lugar se tardará número de filas, sino que acaba de regresar primero del mismo, si es nula se lanzará la excepción SingleOrDefault que tomará sólo una fila, pero volverá puede manejar excepciones si es nula único que se necesita sólo una fila, pero se lo devolverá & no puede manejar excepciones

Si el conjunto de resultados devuelve 0 registros:

SingleOrDefault devuelve el valor predeterminado para el tipo (p. predeterminada para int es 0) FirstOrDefault devuelve el valor predeterminado para el tipo Si conjunto de resultados devuelve 1 registro:

SingleOrDefault devuelve ese registro FirstOrDefault devuelve ese registro si el conjunto devuelve un resultado muchos registros:

SingleOrDefault lanza una excepción FirstOrDefault devuelve el primer registro Conclusión:

Si desea una excepción que se produce si el conjunto de resultados contiene muchos registros, utilice SingleOrDefault.

Si siempre quiere 1 registro no importa lo que el conjunto de resultados contiene, utilice FirstOrDefault

Cuestiones relacionadas