Udostępnij za pośrednictwem


Debugowanie zapytań LINQ to DataSet

Program Visual Studio obsługuje debugowanie kodu LINQ to DataSet. Istnieją jednak pewne różnice między debugowaniem kodu LINQ to DataSet i kodem zarządzanym innego niż LINQ to DataSet. Większość funkcji debugowania współpracuje z instrukcjami LINQ to DataSet, w tym krokami, ustawianiem punktów przerwania i wyświetlaniem wyników wyświetlanych w oknach debugera. Jednak odroczone wykonywanie zapytania w programie ma pewne skutki uboczne, które należy wziąć pod uwagę podczas debugowania kodu LINQ to DataSet i istnieją pewne ograniczenia dotyczące używania funkcji Edytuj i Kontynuuj. W tym temacie omówiono aspekty debugowania, które są unikatowe dla linQ to DataSet w porównaniu z kodem zarządzanym innej niż LINQ to DataSet.

Wyświetlanie wyników

Wynik instrukcji LINQ to DataSet można wyświetlić za pomocą polecenia Data Wskazówki, okna Watch i okna dialogowego QuickWatch. Za pomocą okna źródłowego można wstrzymać wskaźnik w zapytaniu w oknie źródłowym i pojawi się etykietka danych. Możesz skopiować zmienną LINQ to DataSet i wkleić ją do okna Watch lub okna dialogowego QuickWatch. W zestawie danych LINQ to DataSet zapytanie nie jest oceniane podczas jego tworzenia lub deklarowanego, ale tylko wtedy, gdy zapytanie jest wykonywane. Jest to nazywane odroczonym wykonaniem. W związku z tym zmienna kwerendy nie ma wartości, dopóki nie zostanie obliczona. Aby uzyskać więcej informacji, zobacz Zapytania w linQ to DataSet.

Debuger musi ocenić zapytanie, aby wyświetlić wyniki zapytania. Ta niejawna ocena występuje podczas wyświetlania wyniku zapytania LINQ to DataSet w debugerze i ma pewne efekty, które należy wziąć pod uwagę. Każda ocena zapytania zajmuje trochę czasu. Rozszerzanie węzła wyników zajmuje trochę czasu. W przypadku niektórych zapytań wielokrotna ocena może spowodować zauważalną karę za wydajność. Ocena zapytania może również spowodować skutki uboczne, które są zmianami wartości danych lub stanu programu. Nie wszystkie zapytania mają skutki uboczne. Aby określić, czy zapytanie może być bezpiecznie oceniane bez skutków ubocznych, musisz zrozumieć kod implementujący zapytanie. Aby uzyskać więcej informacji, zobacz Efekty uboczne i wyrażenia.

Edytuj i kontynuuj

Funkcja Edytuj i kontynuuj nie obsługuje zmian w zapytaniach LINQ to DataSet. Jeśli dodasz, usuniesz lub zmienisz instrukcję LINQ to DataSet podczas sesji debugowania, zostanie wyświetlone okno dialogowe z informacją, że zmiana nie jest obsługiwana przez funkcję Edytuj i Kontynuuj. W tym momencie można cofnąć zmiany lub zatrzymać sesję debugowania i ponownie uruchomić nową sesję przy użyciu edytowanego kodu.

Ponadto funkcja Edytuj i kontynuuj nie obsługuje zmiany typu ani wartości zmiennej używanej w instrukcji LINQ to DataSet. Ponownie możesz cofnąć zmiany lub zatrzymać i ponownie uruchomić sesję debugowania.

W programie Visual C# w programie Visual Studio nie można używać funkcji Edytuj i Kontynuuj w żadnym kodzie w metodzie zawierającej zapytanie LINQ to DataSet.

W programie Visual Basic w programie Visual Studio można użyć funkcji Edytuj i kontynuuj w kodzie innej niż LINQ to DataSet, nawet w metodzie zawierającej zapytanie LINQ to DataSet. Możesz dodać lub usunąć kod przed instrukcją LINQ to DataSet, nawet jeśli zmiany wpływają na numer wiersza zapytania LINQ to DataSet. Środowisko debugowania języka Visual Basic dla kodu innego niż LINQ to DataSet pozostaje takie samo jak przed wprowadzeniem linQ to DataSet. Nie można jednak zmienić, dodać ani usunąć zapytania LINQ to DataSet, chyba że zatrzymasz debugowanie w celu zastosowania zmian.

Zobacz też