c# linq linq-to-sql delayed-execution

c# - ¿Cómo puedo asegurarme de que mis consultas LINQ se ejecuten cuando se me llama en mi DAL, no de forma diferida?



linq-to-sql delayed-execution (1)

Llamar a ToList o ToArray es realmente la mejor manera de obligarlo a ejecutar y obtener toda la secuencia (consulte el comentario de Randolpho a continuación para conocer otros métodos que forzarán la ejecución de elementos únicos de la secuencia).

¿Hay alguna razón específica por la que desee evitar la ejecución diferida?

Tengo un DAL que se compone de un conjunto de métodos que realizan consultas LINQ en mi base de datos.

¿Cómo me aseguro de que antes de volver diga un IEnumberable o algo similar de la base de datos, me aseguro de que la consulta LINQ se ejecute entonces , no de forma diferida solo para ser ejecutada cuando se usa el resultado?

Sé que puedo llamar a .ToList () sobre mi resultado en mis métodos para forzarlo a ejecutar, pero ¿es esta la mejor manera?