У Dapper dot net есть параметр buffer
(bool), но насколько я могу судить, единственное, что он делает, - это передать результат в список, прежде чем возвращать его.
В соответствии с документация:
По умолчанию поведение Dapper заключается в том, чтобы выполнить ваш sql и закрепить весь читатель по возвращении. Это идеально в большинстве случаев, так как это сводит к минимуму общие блокирует в db и сокращает время сети db.
Однако при выполнении огромных запросов вам может потребоваться свести к минимуму память и загружать объекты по мере необходимости. Для этого выполните буферизацию: false в метод запроса.
Я не уверен, как результат результата в списке выполняет это. Я что-то упускаю? Моя единственная идея - установить CommandBehavior
для ExecuteReader
в CommandBehavior.SequentialAccess
(но это не так).
Спасибо, что просвещал меня.