I can hardly imagine that you really want to show 1 million rows at once.
Even if you have one big table with a million rows, you will probably show them in a form or on a page which allows filtering and/or paging, so your users will only see a few rows at a time.
So I think what you really want is to select, let's say, 50 or 100 rows at once from your big table with a million rows.
For that, you can use ADO.NET or any ORM you want. They all do basically the same, it's just a matter of personal preference and there's no notable performance difference when used with this amount of data.
If you really want to load the whole million rows at once, well...you will get performance problems anyway, no matter what data access technology you use. Even with ADO.NET and a DataReader.
And even if performance would not be an issue...it still makes no sense to me.
What do your users do with a million rows of data, all shown at once? They can't see them all at the same time anyway.