.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.

2 Comments

  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


x

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...