.First() throws Error in LINQ or Entity Framework Queries

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 .

Eg :

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 .

If you enjoyed this post, please consider leaving a comment or subscribing to the RSS feed to have future articles delivered to your feed reader.


  1. Holli Tobey December 1, 2010 Reply
  2. .First() throws Error in LINQ or Entity Framework Queries | ProgramInDotnet August 9, 2011 Reply
  3. Ed Eaglehouse October 5, 2016 Reply

Leave a Reply


Interesting BlogPosts to read

Best Eclipse Plugins
Looking for some best plugins for your Eclipse IDE ? . In this blog post , we list out some of the g...
Contact Form 7 Wordpress Plugin - Error Failed to send your message. Please try later or contact administrator by other way
Contact Form 7 plugin is one of the popular word press plugin that allows us to customize and perfor...
How to get the MAX row with group by in LINQ query using C# ?
Below is a sample code snippet demonstrating how to retreive the max row with the group by in LINQ Q...