IQueryable<T>
: lets you execute requests against queriable data sources. For example
IQueryable<Project> projects = db.Projects;
var selectedItems = projects
.Where(x => x.Workers.Count() > 10 && x.Status != 1)
.ToArray();
In this example filtering would be done on SQL Server (in involves tricky mechanics with translating Expression x => x.Workers.Count() > 10 && x.Status != 1
to SQL statements)
So no need to write custom SQL commands to use all might of data source.
Also can be used not only with SQL, you can query objects or anything else, just find implementation of IQueryable<T>