die folgende LINQ to SQL-Abfrage Gegeben:Verständnis .AsEnumerable() in LINQ to SQL
var test = from i in Imports
where i.IsActive
select i;
Die interpretierte SQL-Anweisung lautet:
SELECT [t0].[id] AS [Id] .... FROM [Imports] AS [t0] WHERE [t0].[isActive] = 1
sagen, dass ich eine Aktion in der Auswahl ausführen wollte das kann nicht in SQL konvertiert werden. Es ist mein Verständnis, dass der herkömmliche Weg dies zu tun ist, AsEnumerable()
damit zu einem praktikablen Objekt zu konvertieren.
diese aktualisierte Code Gegeben:
var test = from i in Imports.AsEnumerable()
where i.IsActive
select new
{
// Make some method call
};
Und aktualisiert SQL:
SELECT [t0].[id] AS [Id] ... FROM [Imports] AS [t0]
Hinweis das Fehlen einer where-Klausel in der SQL-Anweisung ausgeführt.
Bedeutet dies, dass die gesamte Tabelle "Imports" im Speicher zwischengespeichert wird? Wäre das überhaupt eine langsame Leistung, wenn die Tabelle eine große Menge an Datensätzen enthält?
Helfen Sie mir zu verstehen, was hier hinter den Kulissen tatsächlich passiert.
Ausgezeichnete Frage! – fernandoespinosa
Hier finden Sie aktuelle Beispiele aus einer anderen Frage: [1] [1] [link Beschreibung hier eingeben]: http://stackoverflow.com/a/14129116/1792434 – lukaszk