Поделиться через


Отладка запросов в 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 можно просмотреть с помощью data Советы, окна "Контрольные данные" и диалогового окна быстрого просмотра. В окне исходного текста можно остановить указатель на запросе, после чего появится элемент DataTip. Вы можете скопировать переменную 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, если вы не остановите отладку, чтобы применить изменения.

См. также