質問: タイトルはかなりそれをすべて言う。 Dapperには多くのドキュメントがないので。前もって感謝します。
回答: Query()はIEnumerableを返します。あなたのIEnumerableを反復処理するとき、Dapperの中では、Yieldを使ってPOCOに結果行を入力するメソッドが呼び出されます。その結果、反復処理が進むにつれて結果が徐々に具体化されます。結果セットのすべての行が一度に戻ってくることは保証されていないので、DB接続を開いたままにしておく必要があります。確かに大きな結果セットの場合、アプリケーション内のメモリに結果全体を設定することなく、結果セットをループすることができます。いつでも、IEnumerableでToList()を呼び出すことができます。次に、すべてを実体化して、接続を閉じることができます。