Отладка запросов LINQ to DataSet

Visual Studio поддерживает отладку кода LINQ to DataSet. Однако существует ряд различий между отладкой кода LINQ to DataSet и управляемым кодом, отличным от LINQ to DataSet. Большинство функций отладки работают с операторами LINQ to DataSet, включая пошаговое выполнение, настройку точек останова и просмотр результатов, отображаемых в окнах отладчика. Однако выполнение отложенного запроса имеет некоторые побочные эффекты, которые следует учитывать при отладке кода LINQ to DataSet, и существуют некоторые ограничения на использование правки и продолжения. В этом разделе рассматриваются аспекты отладки, уникальные для LINQ to DataSet по сравнению с управляемым кодом, отличным от LINQ to DataSet.

Просмотр результатов

Результат инструкции LINQ to DataSet можно просмотреть с помощью подсказок данных, окна наблюдения и диалогового окна быстрого наблюдения. С помощью исходного окна можно приостановить указатель на запрос в исходном окне и появится подсказка данных. Вы можете скопировать переменную LINQ to DataSet и вставить ее в окно "Контрольные" или в диалоговом окне "Быстрые часы". В LINQ to DataSet запрос не вычисляется при создании или определении, а только при выполнении запроса. Это называется отложенным выполнением. Поэтому переменная запроса не имеет значения, пока он не будет оценен. Дополнительные сведения см. в разделе "Запросы" в LINQ to DataSet.

Отладчик должен оценить запрос, чтобы отобразить результаты запроса. Эта неявная оценка возникает при просмотре запроса LINQ to DataSet в отладчике и имеет некоторые последствия, которые следует учитывать. Каждая оценка запроса занимает время. Расширение узла результатов занимает какое-то время. Для некоторых запросов повторная оценка может привести к заметному снижению производительности. Оценка запроса также может вызвать побочные эффекты, которые изменяют значение данных или состояние программы. Не все запросы имеют побочные эффекты. Чтобы определить, можно ли безопасно оценить запрос без побочных эффектов, необходимо понять код, реализующий запрос. Дополнительные сведения см. в разделе Побочные Эффекты и Выражения.

Правка и продолжение работы

"Редактирование и продолжение не поддерживает изменения в запросах LINQ to DataSet." При добавлении, удалении или изменении инструкции LINQ to DataSet во время сеанса отладки появится диалоговое окно, которое сообщает, что изменение не поддерживается функцией "Редактировать и продолжить". На этом этапе можно отменить изменения или остановить сеанс отладки и перезапустить новый сеанс с измененным кодом.

Кроме того, Edit and Continue не поддерживает изменение типа или значения переменной, используемой в инструкции LINQ to DataSet. Опять же, можно отменить изменения или остановить и перезапустить сеанс отладки.

В Visual C# в Visual Studio нельзя использовать команду "Изменить и продолжить" для любого кода в методе, который содержит запрос LINQ to DataSet.

В Visual Basic и Visual Studio можно использовать функцию "редактирование и продолжение" в коде, отличном от LINQ to DataSet, даже если в методе содержится запрос LINQ to DataSet. Вы можете добавить или удалить код перед инструкцией LINQ to DataSet, даже если изменения влияют на номер строки запроса LINQ to DataSet. Ваш опыт отладки Visual Basic для кода, не связанного с LINQ to DataSet, остается таким же, каким он был до внедрения LINQ to DataSet. Однако невозможно изменить, добавить или удалить запрос LINQ to DataSet, если вы не остановите отладку, чтобы применить изменения.

См. также