If you return IList(T) from your repository ...
How could you efficiently create SQL queries when you join the data together?
Is it REQUIRED to expose IQueryable / IEnumerable data structures for those methods? This to me is bad.
Or
Am I missing some basic concept?
Right now I have a repository methods like:
IList<T> Get( Expression(...) filter, Expression(...) sort, int skip, int take)
where null indicates Get All. This works very well until I want to find all Orders of a set of Customers without doing a query for each customer.