consideran este código:¿Entiendo mal LINQ to SQL .AsEnumerable()?
var query = db.Table
.Where(t => SomeCondition(t))
.AsEnumerable();
int recordCount = query.Count();
int totalSomeNumber = query.Sum();
decimal average = query.Average();
Supongamos query
tarda mucho tiempo en ejecutarse. Necesito obtener el recuento de registros, total de SomeNumber
devuelto, y tomar un promedio al final. Pensé basándome en mi lectura que .AsEnumerable()
ejecutaría la consulta usando LINQ-to-SQL, luego usar LINQ-to-Objects para el Count
, Sum
y Average
. En cambio, cuando hago esto en LINQPad, veo que la misma consulta se ejecuta tres veces. Si reemplazo .AsEnumerable()
con .ToList()
, solo se realiza una consulta una vez.
Me falta algo acerca de lo que AsEnumerable
es/does?
Una pregunta muy útil para entender el comportamiento de 'AsEnumerable()' – Lijo