Dada la siguiente LINQ a SQL consulta:La comprensión .AsEnumerable() en LINQ to SQL
var test = from i in Imports
where i.IsActive
select i;
La sentencia SQL es interpretado:
SELECT [t0].[id] AS [Id] .... FROM [Imports] AS [t0] WHERE [t0].[isActive] = 1
dicho que quiera llevar a cabo alguna acción en el selecto que no se puede convertir a SQL. Entiendo que la forma convencional de lograr esto es hacer AsEnumerable()
convirtiéndolo así en un objeto viable.
Dado este código actualizado:
var test = from i in Imports.AsEnumerable()
where i.IsActive
select new
{
// Make some method call
};
y SQL actualización:
SELECT [t0].[id] AS [Id] ... FROM [Imports] AS [t0]
Aviso la falta de una cláusula where de la instrucción SQL ejecutada.
¿Significa esto que toda la tabla "Importaciones" está almacenada en la memoria caché? ¿Disminuiría este rendimiento si la tabla contuviera una gran cantidad de registros?
Ayúdame a entender lo que está sucediendo detrás de escena aquí.
¡Excelente pregunta! – fernandoespinosa
Tener un vistazo a los ejemplos de otra pregunta: ¿ [enter Descripción enlace aquí] [1] [1]: http://stackoverflow.com/a/14129116/1792434 – lukaszk