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?
-
06-07-2019 - |
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?
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?