Comment puis-je m'assurer que mes requêtes LINQ s'exécutent lorsqu'elles sont appelées dans mon DAL, et non de manière différée?

StackOverflow https://stackoverflow.com/questions/1013201

Question

J'ai un DAL composé d'un ensemble de méthodes qui effectuent des requêtes LINQ sur ma base de données.

Comment puis-je m'assurer qu'avant de renvoyer un IEnumberable ou quelque chose de similaire de la base de données, je m'assure que la requête LINQ est exécutée puis , et non de manière retardée, pour être exécutée uniquement lorsque le résultat est utilisé?

Je sais que je peux appeler .ToList () sur mon résultat dans mes méthodes pour le forcer à s'exécuter, mais est-ce le meilleur moyen?

Était-ce utile?

La solution

Appel de ToList ou ToArray est vraiment le meilleur moyen de le forcer à exécutez et obtenez la séquence complète (voir le commentaire de Randolpho ci-dessous pour d'autres méthodes qui forceront l'exécution pour des éléments uniques de la séquence).

Y a-t-il une raison spécifique pour laquelle vous souhaitez éviter une excution différée?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top