Dapper Query(..):流或加载所有?

Art*_*yom 4 c# orm dapper

它是否加载此代码中的所有记录或使用类似SqlDataReader的内容?

using (var c = new SqlConnection(_options.TargetConnectionString))
{
    c.Open();
    foreach(var record in c.Query("select * from Users")) // suppose N+1 records
    {
        // all records loaded or read one by one here? 
        // some work here...
    }
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*ell 9

这两个选项都受支持.默认情况下,数据被缓冲到List<T>大多数查询相当小的基础上,并避免"多记录集"限制.要在没有额外分配的情况下获取基础列表,请使用提供的.AsList()扩展方法.但是,如果您想要无缓冲的数据:pass buffered: false.这将为您提供一个包装原始的枚举器IDataReader- 适用于大量查询.

  • @Artyom我不相信那个人 - 他是一个完整的混蛋 (6认同)