Biorąc pod uwagę następujące LINQ do kwerendy SQL:Zrozumienie .AsEnumerable() w LINQ to SQL
var test = from i in Imports
where i.IsActive
select i;
Interpretowany SQL jest:
SELECT [t0].[id] AS [Id] .... FROM [Imports] AS [t0] WHERE [t0].[isActive] = 1
Say chciałem wykonać pewne działania w select których nie można przekonwertować na SQL. Rozumiem, że konwencjonalnym sposobem osiągnięcia tego jest wykonanie go w ten sposób, aby przekształcić go w działający obiekt.
Biorąc pod uwagę ten zaktualizowany kod:
var test = from i in Imports.AsEnumerable()
where i.IsActive
select new
{
// Make some method call
};
i aktualizowane SQL:
SELECT [t0].[id] AS [Id] ... FROM [Imports] AS [t0]
zauważyć brak WHERE w wykonywanej instrukcji SQL.
Czy to oznacza, że cała tabela "Import" jest zapisana w pamięci podręcznej? Czy ta powolna wydajność w ogóle, gdyby tabela zawierała dużą liczbę rekordów?
Pomóż mi zrozumieć, co dzieje się za kulisami.
Doskonałe pytanie! – fernandoespinosa
Wystarczy popatrzeć na przykłady z innym pytaniem: [wpisać opis link tutaj] [1] [1]: http://stackoverflow.com/a/14129116/1792434 – lukaszk