Linq on IEnumerable uses Linq for objects - Linq on IQueryable uses what the query provider has done for standard query operators.
For ORMs such as Linq to SQL and Entity Framework, that is, to translate your Linq query into the corresponding SQL query in the database - filtering, etc. in a database, it is much preferable to move all this data into memory, since it will be much better performance.
source share