Single() / SingleOrDefault()
|
First () / FirstOrDefault() |
Single() - There is exactly 1
result, an exception is thrown if no result is returned or more than one
result.
SingleOrDefault() – Same as
Single(), but it can handle the null value. |
First() - There is at least one
result, an exception is thrown if no result is returned.
FirstOrDefault() - Same as
First(), but not thrown any exception or return null when there is no
result. |
Single() asserts that one and only one
element exists in the sequence. |
First() simply gives you the first one. |
When to use
Use Single / SingleOrDefault() when you
sure there is only one record present in database or you can say if you
querying on database with help of primary key of table. |
When to use
Developer may use First () /
FirstOrDefault() anywhere, when they required single value from
collection or database. |
Single() or SingleOrDefault() will
generate a regular TSQL like "SELECT ...". |
The First() or FirstOrDefault() method
will generate the TSQL statment like "SELECT TOP 1..." |
In the case of Fist / FirstOrDefault,
only one row is retrieved from the database so it performs slightly
better than single / SingleOrDefault. such a small difference is hardly
noticeable but when table contain large number of column and row, at
this time performance is noticeable. |