Ich kenne den Unterschied zwischen FirstOrDefault
und SingleOrDefault
nicht. Wann sollte ich den ersten verwenden und wann sollte ich den zweiten verwenden?
FirstOrDefault()
wird verwendet, wenn erwartet wird, dass null oder mehr Ergebnisse in der Eingabesammlung vorhanden sind, und der Aufruf das erste Element zurückgibt, wenn mehrere Ergebnisse vorhanden sind, Default, wenn kein Ergebnis vorhanden ist.
SingleOrDefault()
ist für den Fall, dass in der Eingabesammlung null oder eins erwartet wird und der Aufruf das eine Ergebnis zurückgibt, wenn genau ein Ergebnis vorhanden ist. Default if keine Ergebnisse und Ausnahme falls mehr als ein Ergebnis.
first oderdefault wird die Anzahl der Zeilen übernehmen, wird aber nur die erste Zeile zurückgeben, wenn dies der Fall ist null Es kann die Ausnahme behandeln Zuerst wird es die Anzahl der Zeilen aufnehmen, aber es wird nur die erste Zeile zurückgegeben, wenn dies der Fall ist null wird die Ausnahme ausgelöst singleordefault es wird nur eine Zeile dauern, aber es zurückgeben kann Ausnahmen behandeln, wenn es null ist Single es wird nur eine Zeile dauern, aber es wird zurückgegeben & amp; kann Ausnahmen nicht behandeln
Wenn Ihre Ergebnismenge 0 Datensätze zurückgibt:
SingleOrDefault gibt den Standardwert für den Typ zurück (z. B. Standard für int ist 0) FirstOrDefault gibt den Standardwert für den Typ zurück Wenn Sie Ergebnis haben, gibt 1 Datensatz zurück:
SingleOrDefault gibt diesen Datensatz zurück FirstOrDefault gibt diesen Datensatz zurück Wenn Ihre Ergebnismenge viele Datensätze zurückgibt:
SingleOrDefault löst eine Ausnahme aus FirstOrDefault gibt den ersten Datensatz zurück Fazit:
Wenn eine Ausnahme ausgelöst werden soll, wenn die Ergebnismenge viele Datensätze enthält, verwenden Sie SingleOrDefault.
Wenn Sie immer 1 Datensatz wollen, unabhängig davon, was das Ergebnis enthält, verwenden Sie FirstOrDefault
Tags und Links entity-framework linq