I'd suggest looking at the Azure SDK for .NET.
It's simple, there's lots of samples and the code you write can be hosted in many different azure services.
I'd probably add that pagination isn't a bad thing. It's designed to facilitate faster reliable applications. Loading 2M rows into memory (and doing what with that data), might not be the most effective way to do what you need.