Non conosco la differenza tra FirstOrDefault
e SingleOrDefault
. Quando dovrei usare il primo e quando dovrei usare il secondo?In Linq, qual è la differenza tra .FirstOrDefault e .SingleOrDefault
risposta
FirstOrDefault()
è per quando è richiesto lo zero o più risultati nella raccolta di input e la chiamata restituisce il primo elemento se vi sono più risultati, Predefinito se nessuno.
SingleOrDefault()
è per quando è previsto zero o un risultato nella raccolta di input e la chiamata restituisce l'unico risultato se è presente esattamente un risultato, Predefinito se nessun risultato e eccezione se più di un risultato.
SingleOrDefault genererà un'eccezione "Sequenza contiene più di un elemento" se esiste più di un elemento.
FirstOrDefault ci vorranno numero di righe ma solo restituire prima di esso, se è nullo può gestire l'eccezione primo prenderà numero di righe ma solo restituire prima di esso, se è nullo si getterà l'eccezione SingleOrDefault ci vorranno solo una riga, ma tornerà può gestire le eccezioni se è nullo singolo ci vorranno solo una riga ma restituirlo & non può gestire le eccezioni
Se i set di risultati restituisce 0 record:
SingleOrDefault restituisce il valore predefinito per il tipo (ad es. predefinito per int è 0) FirstOrDefault restituisce il valore di default per il tipo di Se set di risultati restituisce 1 registro:
SingleOrDefault ritorna il record FirstOrDefault ritorna il record Se il vostro restituisce il risultato molti record:
SingleOrDefault genera un'eccezione FirstOrDefault restituisce il primo record Conclusione:
Se si vuole un'eccezione a essere gettato se il set di risultati contiene molti record, utilizzare SingleOrDefault.
Se vuoi sempre 1 registro non importa quale sia il set di risultati contiene, utilizzare FirstOrDefault
- 1. differenza tra selezionare e dove in LINQ
- 2. LINQ SingleOrDefault in Typescript
- 3. Linq FirstOrDefault
- 4. Qual è la differenza tra questi LINQ interroga
- 5. Qual è la differenza tra = e: =
- 6. Qual è la differenza tra `##` e `hashCode`?
- 7. Qual è la differenza tra dict() e {}?
- 8. qual è la differenza tra:.! e: r !?
- 9. Qual è la differenza tra Verilog! e ~?
- 10. Qual è la differenza tra ("") e (null)
- 11. Qual è la differenza tra? : e ||
- 12. qual è la differenza tra [[], []] e [[]] * 2
- 13. Qual è la differenza tra $ e $$?
- 14. Qual è la differenza tra " " e ""?
- 15. Qual è la differenza tra {0} e ""?
- 16. Qual è la differenza tra {0} e +?
- 17. Qual è la differenza tra .ToString() e + ""
- 18. Qual è la differenza tra SqlFunctions e EntityFunctions?
- 19. Differenza tra somma e aggregazione in LINQ
- 20. Linq, è select(). SingleorDefault() una cattiva idea?
- 21. Qual è la differenza tecnica tra SubmitChanges in Linq-to-SQL e SaveChanges in Entity Framework?
- 22. LINQ - FirstOrDefault() quindi Select()
- 23. Qual è la differenza tra "in fp" e "in fp.readlines()"?
- 24. Qual è la differenza tra "Enum: Type" e semplicemente "Enum"
- 25. ottimizzazione in funzione SingleOrDefault di Linq
- 26. Qual è la differenza tra più clausole where e && operator in LINQ-to-SQL?
- 27. Linq: Qual è la differenza tra == e uguale in un join?
- 28. Qual è la differenza tra Metodi e Attributi in Ruby?
- 29. qual è la differenza tra @ id/e @ + id/in android?
- 30. Qual è la differenza tra 'e "in? JavaScript
alcuni buoni conversazioni qui: http://stackoverflow.com/questions/1745691/linq-when-to -use-SingleOrDefault-vs-FirstOrDefault-con-filtro-criteri – DaveHogan