What is the difference between IEnumerable and IQueryable in EF?

Updated Apr 28, 2026

Short answer

IQueryable executes queries on the server (database). IEnumerable executes queries in memory (client-side).

Deep explanation

When using IQueryable, LINQ commands are translated into SQL and executed efficiently by the DB engine. If you cast a DbSet to IEnumerable or call .ToList() before filtering, the entire table is pulled into memory, and filtering happens in C#.

Real-world example

Using IQueryable to apply pagination (.Skip().Take()) so the database only returns the 10 rows needed for the current page.

Common mistakes

  • Calling .ToList() too early in a query chain, crashing the application due to out-of-memory exceptions when querying large tables.

Follow-up questions

  • What interface does IQueryable inherit from?

More Entity Framework interview questions

View all →