MLPP materializes the entire result set. We should materialize each page of results at a time and stream those pages - in the event that the caller further restricts the result set (with .AsEnumerable().Take() for example
(Moved this issue over from Bitbucket)