ADO.NET-Datentabelle vs. Datenleser

Der DataReader ist effizienter als eine DataTable, wenn Sie Daten nur anzeigen, aber nicht bearbeiten müssen. Soll ich das Verbindungsobjekt offen lassen, um einen DataReader von der Datenzugriffsebene zu erhalten? Ich denke, das ist auch ein sehr großes Effizienzproblem. Gibt es also einen anderen Ansatz, um den DataReader voll auszunutzen?