No sé la diferencia entre FirstOrDefault
y SingleOrDefault
. ¿Cuándo debo usar el primero y cuándo debo usar el segundo?En Linq, ¿cuál es la diferencia entre .FirstOrDefault y .SingleOrDefault
Respuesta
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.
SingleOrDefault arrojará una excepción "La secuencia contiene más de un elemento" si existe más de un elemento.
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
- 1. En cuanto a FirstOrDefault o SingleOrDefault
- 2. diferencia entre Seleccionar y donde en LINQ
- 3. ¿Cuál es la diferencia entre estas consultas LINQ?
- 4. Linq: ¿Cuál es la diferencia entre Seleccionar y Dónde
- 5. Cuál es la diferencia entre LINQ ToDictionary y ToLookup
- 6. ¿Cuál es la diferencia entre Linq, DLinq y XLinq?
- 7. ¿Qué es FirstOrDefault para DateTime en Linq?
- 8. LINQ FirstOrDefault
- 9. Cuál es la diferencia entre "LINQ to Entities", "LINQ to SQL" y "LINQ to Dataset"
- 10. Linq, es select(). SingleorDefault() ¿una mala idea?
- 11. ¿Cuál es la diferencia entre + = y = +?
- 12. ¿cuál es la diferencia entre:.! y: r !?
- 13. ¿Cuál es la diferencia entre ".equals" y "=="?
- 14. Cuál es la diferencia entre $ y jQuery
- 15. Cuál es la diferencia entre = y: =
- 16. Cuál es la diferencia entre $ (...) y `...`
- 17. ¿Cuál es la diferencia entre dict() y {}?
- 18. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 19. Comportamiento FirstOrDefault directamente en la instrucción LINQ
- 20. ¿Cuál es la diferencia entre " " y ""?
- 21. ¿Cuál es la diferencia entre .ToString (+) y ""
- 22. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 23. ¿Cuál es la diferencia entre "$^N" y "$ +"?
- 24. ¿Cuál es la diferencia entre {0} y ""?
- 25. Diferencia entre Suma y Agregado en LINQ
- 26. ¿Hay alguna diferencia de rendimiento entre myCollection.Where (...). FirstOrDefault() y myCollection.FirstOrDefault (...)
- 27. ¿Cuál es la diferencia entre @ y $ y% en MSBuild?
- 28. ¿Cuál es la diferencia técnica entre SubmitChanges en Linq-to-SQL y SaveChanges en Entity Framework?
- 29. FirstOrDefault() fuera de un LINQ versus FirstOrDefault() con un Lambda?
- 30. LINQ to SQL - La conversión especificada no es válida - SingleOrDefault()
Algunas muy buenas conversaciones aquí: http://stackoverflow.com/questions/1745691/linq-when-to -use-singleordefault-vs-firstordefault-with-filtering-criteria – DaveHogan