Dapper dot net有一个buffer参数(bool),但据我所知,它唯一能做的就是在返回之前将结果转换为列表.
根据文件:
Dapper的默认行为是执行你的sql并在返回时缓冲整个读者.在大多数情况下,这是理想的,因为它最大限度地减少了数据库中的共享锁,并减少了数据库网络时间.
但是,在执行大量查询时,您可能需要最小化内存占用并仅根据需要加载对象.为此,在Query方法中传递,缓冲:false.
我不确定如何将结果转换为列表来实现此目的.我错过了什么吗?我唯一的想法是它应该设置CommandBehavior为ExecuteReaderto CommandBehavior.SequentialAccess(但它没有).