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