So, I\'ve read all the Q&A\'s here on SO regarding the subject of whether or not to expose IQueryable to the rest of your project or not (see here, and here), and I\'ve ulti
Rob's method really doesn't solve your core problem, and that is not wanting to write individual methods for each type of query you'd like to run, and unfortunately if you're not using IQueryable then that is what you are left with.
Sure the methods might be in the "service" layer, but it still means having to write "GetProductsByName, GetProductsByDate"...
The other method is something like:
GetProducts(QueryObject);
This might give you some benefit over using IQueryable in that you can constrain what is returned.