Consider the IEnumerable extension methods SingleOrDefault()
and FirstOrDefault()
MSDN documents that SingleOrDefault:
In your last example:
var latestCust = db.Customers
.OrderByDescending(x=> x.CreatedOn)
.FirstOrDefault();//Single or First, or doesn't matter?
Yes it does. If you try to use SingleOrDefault()
and the query results in more than record you would get and exception. The only time you can safely use SingleOrDefault()
is when you are expecting only 1 and only 1 result...
I don't understand why you're using FirstOrDefault(x=> x.ID == key)
when this could retrieve results much faster if you use Find(key)
. If you are querying with the Primary key of the table, the rule of thumb is to always use Find(key)
. FirstOrDefault
should be used for predicate stuff like (x=> x.Username == username)
etc.
this did not deserve a downvote as the heading of the question was not specific to linq on DB or Linq to List/IEnumerable etc.
For LINQ -> SQL:
SingleOrDefault
FirstOrDefault