I use .First() method in some of the Entity Framework LINQ queries to return only one record . This works perfectly similar to the select Top 1 statemnent in SQL.
var data = (from m in Employees where m.Name == "Senthil" select m).First()
But , there is an issue with this . Assume your LINQ Query does not contain any Records or the SQL Statement ( TOP 1 ) does not return any records . What would happen ??
I initially thought that it might return NULL or Nothing , but it doesn’t .
When there is no record in the query result and the .First() is used , it throws an error stating “Invalid Operation Exception : sequence contains no elements” . Not an Impressive solution . 🙁
Here comes another method that handy in this case ,Its called FirstOrDefault() which returns NULL if there is no records in the result . The FirstOrDefault() will return the default value for the requested type .
var data = (from m in Employees where m.Name == "Senthil" select m).FirstOrDefault();
So beware when using .First() or .Last() , since you can use .FirstOrDefault() or .LastOrDefault() instead .
Also check what is Supported and what is not Supported in Entity Framework when using First or Last funtion in one my earlier posts .