Dapper Query (..): ¿se ejecuta o carga todo?

c# dapper orm

Pregunta

¿Carga todos los registros en este código o usa algo como 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...
    }
}

Respuesta experta

Ambas opciones son compatibles. De forma predeterminada, los datos se almacenan en una List<T> sobre la base de que la mayoría de las consultas son bastante pequeñas, y para evitar la limitación de "múltiples registros". Para obtener la lista subyacente sin una asignación adicional, use el método de extensión .AsList() provisto. Sin embargo, si desea datos no buffered: false búfer: pass buffered: false . Esto le dará un enumerador que envuelve el IDataReader sin IDataReader , adecuado para grandes consultas.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué