¿Cómo puedo asegurarme de que mis consultas LINQ se ejecutan cuando se llaman en mi DAL, no de manera retrasada?

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

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?

¿Fue útil?

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?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top