Compartilhar via


Consultas LINQ to DataSet de depuração

O Visual Studio dá suporte à depuração do código LINQ to DataSet. No entanto, há algumas diferenças entre a depurar o código LINQ to DataSet e o código gerenciado não LINQ to DataSet. A maioria dos recursos de depuração funcionam com instruções LINQ to DataSet, incluindo a execução em etapas, definição de pontos de interrupção e exibição dos resultados mostrados em janelas de depurador. No entanto, a execução de consulta adiada tem em alguns efeitos colaterais que você deve considerar ao depurar o código do LINQ to DataSet, e há algumas restrições ao uso do Editar e Continuar. Este tópico discute aspectos da depuração exclusivos ao LINQ to DataSet em comparação com o código gerenciado não LINQ to DataSet.

Resultados de exibição

É possível exibir o resultado de uma instrução LINQ to DataSet usando DataTips, a janela Inspeção e a caixa de diálogo QuickWatch. Usando uma janela de origem, você pode pausar o ponteiro em uma consulta na janela de origem e um DataTip aparecerá. É possível copiar uma variável LINQ to DataSet e colá-la na janela Inspeção ou na caixa de diálogo QuickWatch. Em LINQ to DataSet, uma consulta não é avaliada quando é criada ou declarada, mas somente quando a consulta é executada. Isso é chamado de execução adiada. Portanto, a variável de consulta não tem um valor até que seja avaliada. Para obter mais informações, confira Consultas no LINQ to DataSet.

O depurador deve avaliar uma consulta para exibir os resultados da consulta. Esta avaliação implícita ocorre quando você exibe um resultado de consulta de LINQ to DataSet no depurador, e tem alguns efeitos que você deve considerar. Cada avaliação de consulta leva tempo. Expandir o nó de resultados leva tempo. Para algumas consultas, a avaliação repetida pode causar uma caneta visível de desempenho. Avaliar uma consulta também pode causar efeitos colaterais, que são alterações ao valor de dados ou de estado do seu programa. Nem todas as consultas têm efeitos colaterais. Para determinar se uma consulta com segurança pode ser avaliada sem efeitos colaterais, você deve compreender o código que implementa a consulta. Para obter mais informações, confira Efeitos colaterais e expressões.

Editar e continuar

Editar e continuar não suporta alterações em consultas LINQ to DataSet. Se você adicionar, remover ou alterar uma instrução LINQ to DataSet durante uma sessão de depuração, uma caixa de diálogo aparece o que indica que a alteração não é suportada por Editar e Continuar. Nesse ponto, você pode desfazer as alterações ou parar a sessão de depuração e reiniciar uma nova sessão com o código editado.

Além disso, Editar e Continuar não dá suporte à alteração do tipo ou do valor de uma variável usado em uma instrução LINQ to DataSet. Além disso, você pode desfazer as alterações ou parar e reiniciar a sessão de depuração.

No Visual C# do Visual Studio, não é possível usar o Editar e Continuar em nenhum código em um método que contenha uma consulta LINQ to DataSet.

No Visual Basic do Visual Studio, não é possível usar o Editar e Continuar em códigos não relacionados ao LINQ to DataSet, até mesmo em um método que contenha uma consulta LINQ to DataSet. É possível adicionar ou remover o código antes da instrução LINQ to DataSet, mesmo se as alterações afetarem o número de linha da consulta LINQ to DataSet. Sua experiência de depuração do Visual Basic para código de não LINQ to DataSet permanecerá a mesma como era antes da introdução do LINQ to DataSet. No entanto, não é possível modificar, adicionar nem remover uma consulta LINQ to DataSet, a menos que você pare a depuração para aplicar as alterações.

Confira também