Wie kann ich sicherstellen, dass meine LINQ-Abfragen nicht in einer verzögerten Weise ausgeführt werden, wenn sie in meiner DAL aufgerufen werden?

8

Ich habe eine DAL, die aus einer Reihe von Methoden besteht, die LINQ-Abfragen in meiner Datenbank durchführen.

Wie stelle ich sicher, dass ich vor der Rückgabe ein IEnumberable oder etwas ähnliches aus der Datenbank verlange, dass die LINQ-Abfrage dann ausgeführt wird und nicht verzögert, sondern nur ausgeführt wird, wenn das Ergebnis vorliegt benutzt?

Ich weiß, ich kann .ToList () auf meinem Ergebnis in meinen Methoden aufrufen, um es auszuführen, aber ist das der beste Weg?

    
KingNestor 18.06.2009, 15:03
quelle

1 Antwort

13

Rufen Sie ToList oder ToArray ist wirklich der beste Weg, um die Ausführung zu erzwingen und die gesamte Sequenz zu erhalten (siehe Randolphos Kommentar unten für andere Methoden, die die Ausführung für Single erzwingen) Elemente der Sequenz).

Gibt es einen bestimmten Grund, warum Sie eine verzögerte Ausgabe vermeiden möchten?

    
Andrew Hare 18.06.2009, 15:07
quelle