So, it's bad to use a repository as a proxy for the data context that implements IQueryable<t> if your application is complex enough. As we have said it leads to loss of control over queries and to move data access logic into the business logic layer. You must understand that you know about the queries of your application to avoid it. Can a user of your application to build their own or not (such queries do not include pagging queries)? Today we look at the application with a known set of queries.