Compartir a través de


Depurar consultas de LINQ to DataSet

Visual Studio admite la depuración de código LINQ to DataSet. Sin embargo, hay algunas diferencias entre la depuración del código LINQ to DataSet y el código administrado que no es LINQ to DataSet. La mayoría de las características de depuración funcionan con instrucciones LINQ to DataSet, como la ejecución paso a paso, la configuración de puntos de interrupción y la visualización de los resultados que se muestran en las ventanas del depurador. Sin embargo, la ejecución de consultas en diferido conlleva algunos efectos secundarios que se deben tener en cuenta al depurar código LINQ to DataSet y hay algunas limitaciones para utilizar Editar y continuar. En este tema se describen los aspectos de depuración que son exclusivos de LINQ to DataSet en comparación con el código administrado que no utiliza LINQ to DataSet.

Visualización de resultados

Puede ver el resultado de una instrucción LINQ to DataSet mediante la Información sobre datos, la ventana Inspección y el cuadro de diálogo de Inspección rápida. Al usar una ventana de código fuente, puede pausar el puntero en una consulta en la ventana de código fuente para que aparezca una información sobre datos. Puede copiar una variable LINQ to DataSet y pegarla en la ventana Inspección o en el cuadro de diálogo Inspección rápida. En LINQ to DataSet, una consulta no se evalúa cuando se crea o declara, pero solo cuando se ejecuta la consulta. Esto se denomina ejecución diferida. Por lo tanto, la variable de consulta no tiene un valor hasta que se evalúa. Para obtener más información, vea Consultas en LINQ to DataSet.

El depurador debe evaluar una consulta para mostrar los resultados de la consulta. Esta evaluación implícita se produce cuando se ve un resultado de consulta LINQ to DataSet en el depurador y tiene algunos efectos que debe tener en cuenta. Cada evaluación de la consulta tarda tiempo. La expansión del nodo de resultados tarda tiempo. Para algunas consultas, la evaluación repetida podría producir una reducción notable del rendimiento. La evaluación de una consulta también puede provocar efectos secundarios, que son cambios en el valor de los datos o el estado del programa. No todas las consultas tienen los efectos secundarios. Para determinar si una consulta se puede evaluar de forma segura sin efectos secundarios, debe comprender el código que implementa la consulta. Para obtener más información, vea Efectos secundarios y expresiones.

Editar y continuar

Editar y continuar no admite cambios en las consultas LINQ to DataSet. Si agrega, quita o cambia una instrucción LINQ to DataSet durante una sesión de depuración, aparece un cuadro de diálogo que indica que el cambio no es compatible con Edit y Continue. En ese momento, puede deshacer los cambios o detener la sesión de depuración y reiniciar una nueva sesión con el código editado.

Además, Editar y continuar no admite cambiar el tipo o el valor de una variable que se usa en una instrucción LINQ to DataSet. De nuevo, puede deshacer los cambios o detener y reiniciar la sesión de depuración.

En Visual C# en Visual Studio, no puede usar Editar y Continuar en cualquier código en un método que contiene una consulta LINQ to DataSet.

En el Visual Basic en Visual Studio, puede usar la función Editar y Continuar en código que no sea LINQ to DataSet, incluso en un método que contenga una consulta LINQ to DataSet. Puede agregar o quitar código antes de la instrucción LINQ to DataSet, incluso si los cambios afectan al número de línea de la consulta LINQ to DataSet. La experiencia de depuración de Visual Basic para el código que no es LINQ to DataSet sigue siendo la misma que antes de que se introdujera LINQ to DataSet. Sin embargo, no puede cambiar, agregar ni quitar una consulta LINQ to DataSet, a menos que detenga la depuración para aplicar los cambios.

Consulte también