Dapper dot net にはbuffer
パラメーター (bool) がありますが、私が知る限り、それが行う唯一のことは、結果を返す前にリストにキャストすることです。
ドキュメントに従って:
Dapper のデフォルトの動作は、SQL を実行し、リターン時にリーダー全体をバッファリングすることです。これは、データベース内の共有ロックを最小限に抑え、データベースのネットワーク時間を削減するため、ほとんどの場合に理想的です。
ただし、巨大なクエリを実行する場合は、メモリ フットプリントを最小限に抑え、必要なオブジェクトのみを読み込む必要がある場合があります。これを行うには、 buffered: false を Query メソッドに渡します。
結果をリストにキャストする方法がこれを達成するかどうかはわかりません。何か不足していますか?私の唯一の考えは、 を to に設定することになっているということですCommandBehavior
(ExecuteReader
しかしCommandBehavior.SequentialAccess
、そうではありません)。