¿Cómo puedo asegurarme de que mis consultas LINQ se ejecutan cuando se llaman en mi DAL, no de manera retrasada?
-
06-07-2019 - |
Pregunta
Tengo un DAL que se compone de un montón de métodos que realizan consultas LINQ en mi base de datos.
¿Cómo me aseguro de que antes de regresar diga un IEnumberable o algo similar de la base de datos, me aseguro de que la consulta LINQ se ejecute luego , no de una manera retrasada solo para ejecutarse cuando el resultado es utilizado?
Sé que puedo llamar a .ToList () en mi resultado en mis métodos para forzarlo a ejecutarse, pero ¿es esta la mejor manera?
Solución
Llamando a ToList
o ToArray
es realmente la mejor manera de forzarlo a ejecute y obtenga la secuencia completa (consulte el comentario de Randolpho a continuación para conocer otros métodos que forzarán la ejecución de elementos individuales de la secuencia).
¿Hay alguna razón específica por la que desee evitar la excitación diferida?