Понимание .AsEnumerable () в LINQ to SQL

Учитывая следующий запрос LINQ to SQL:

var test = from i in Imports
           where i.IsActive
           select i;

Интерпретируемый оператор SQL:

SELECT [t0].[id] AS [Id] .... FROM [Imports] AS [t0] WHERE [t0].[isActive] = 1

Скажем, я хотел выполнить какое-то действие в select, которое нельзя преобразовать в SQL. Это мое понимание того, что обычный способ сделать это состоит в том, чтобы сделатьAsEnumerable() таким образом превращая его в работоспособный объект.

Учитывая этот обновленный код:

var test = from i in Imports.AsEnumerable()
           where i.IsActive
           select new 
           { 
               // Make some method call 
           };

И обновленный SQL:

SELECT [t0].[id] AS [Id] ... FROM [Imports] AS [t0] 

Обратите внимание на отсутствие предложения where в выполняемом операторе SQL.

Означает ли это, что вся таблица «Imports» кэшируется в память? Будет ли это вообще замедлять работу, если таблица будет содержать большое количество записей?

Помогите мне понять, что на самом деле происходит за кулисами здесь.

Ответы на вопрос(1)

Ваш ответ на вопрос