Debuggen von LINQ to DataSet-Abfragen

Visual Studio 2010 unterstützt das Debugging von LINQ to DataSet-Code. Zwischen dem Debuggen von LINQ to DataSet-Code und nicht von LINQ to DataSet verwaltetem Code gibt es aber einige Unterschiede. Die meisten Debugfunktionen arbeiten mit LINQ to DataSet-Anweisungen, z. B. für das schrittweise Ausführen, das Festlegen von Haltepunkten und das Anzeigen von Ergebnissen in Debuggerfenstern. Die verzögerte Abfrageauswertung hat aber einige Nebenwirkungen, die Sie beim Debuggen von LINQ to DataSet-Code berücksichtigen sollten. Außerdem gelten für die Verwendung von "Bearbeiten und Fortfahren" einige Einschränkungen. In diesem Thema werden Aspekte des Debuggens erläutert, die so nur in LINQ to DataSet eine Rolle spielen. Für das Debuggen von nicht von LINQ to DataSet verwaltetem Code sind sie nicht relevant.

Anzeigen von Ergebnissen

Das Ergebnis einer LINQ to DataSet-Anweisung kann mithilfe von DataTips, über das Überwachungsfenster oder im Dialogfeld Schnellüberwachung angezeigt werden. Bei Verwendung eines Quellcodefensters können Sie den Mauszeiger auf eine Abfrage im Quellcodefenster bewegen, woraufhin ein DataTip eingeblendet wird. Sie können eine LINQ to DataSet-Variable kopieren und in das Überwachungsfenster oder das Dialogfeld Schnellüberwachung einfügen. In LINQ to DataSet wird eine Abfrage nicht beim Erstellen oder Deklarieren, sondern erst bei ihrer Ausführung ausgewertet. Dies wird als verzögerte Ausführung bezeichnet. Deshalb besitzt die Abfragevariable erst nach der Auswertung einen Wert. Weitere Informationen dazu finden Sie unter Abfragen in LINQ to DataSet.

Der Debugger muss eine Abfrage auswerten, um die Abfrageergebnisse anzeigen zu können. Diese implizite Auswertung erfolgt, wenn Sie sich ein LINQ to DataSet-Abfrageergebnis im Debugger ansehen. Sie hat einige Auswirkungen, die Sie berücksichtigen sollten. Jede Auswertung der Abfrage dauert einige Zeit. Das Erweitern des Ergebnisknotens nimmt ebenfalls Zeit in Anspruch. Bei einigen Abfragen kann eine wiederholte Auswertung zu beträchtlichen Leistungseinbußen führen. Die Auswertung einer Abfrage kann auch dazu führen, dass der Datenwert oder Zustand des Programms geändert wird. Nicht alle Abfragen haben Nebeneffekte. Um festzustellen, ob eine Abfrage ohne Nebeneffekte sicher ausgewertet werden kann, sollten Sie sich den Code verdeutlichen, durch den die Abfrage implementiert wird. Weitere Informationen dazu finden Sie unter Nebeneffekte und Ausdrücke.

Bearbeiten und Fortfahren

"Bearbeiten und Fortfahren" unterstützt keine Änderungen an LINQ to DataSet-Abfragen. Wenn Sie eine LINQ to DataSet-Anweisung während einer Debugsitzung hinzufügen, entfernen oder ändern, wird ein Dialogfeld mit dem Hinweis eingeblendet, dass die Änderung von Bearbeiten und Fortfahren nicht unterstützt wird. An diesem Punkt können Sie entweder die Änderungen rückgängig machen oder die Debugsitzung beenden und eine neue Sitzung mit dem bearbeiteten Code starten.

Außerdem bietet Bearbeiten und Fortfahren keine Unterstützung für das Ändern des Typs oder Werts einer in einer LINQ to DataSet-Anweisung verwendeten Variablen. Auch hier können Sie entweder die Änderungen rückgängig machen oder die Debugsitzung beenden und neu starten.

In Visual C# 2010 kann Bearbeiten und Fortfahren nicht für Code in einer Methode verwendet werden, die eine LINQ to DataSet-Abfrage enthält.

In Visual Basic 2010 kann Bearbeiten und Fortfahren für Nicht-LINQ to DataSet-Code verwendet werden, und dies auch in einer Methode, die eine LINQ to DataSet-Abfrage enthält. Sie können Code vor der LINQ to DataSet-Anweisung sogar dann hinzufügen oder entfernen, wenn sich die Änderungen auf die Zeilennummer der LINQ to DataSet-Abfrage auswirken. Das Debugverhalten in Visual Basic für Nicht-LINQ to DataSet-Code bleibt dasselbe wie vor der Einführung von LINQ to DataSet. Es ist jedoch nicht möglich, eine LINQ to DataSet-Abfrage zu ändern, hinzuzufügen oder zu entfernen, es sei denn, Sie beenden den Debugvorgang, um die Änderungen zu übernehmen.

Siehe auch

Weitere Ressourcen

Debuggen von verwaltetem Code

Informationen zum Programmieren (LINQ to DataSet)