Debuggen von LINQ to DataSet-Abfragen

Visual Studio unterstützt das Debuggen von LINQ to DataSet-Code. Es gibt jedoch einige Unterschiede zwischen dem Debuggen von LINQ to DataSet-Code und nicht mit LINQ to DataSet verwaltetem Code. 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 im Vergleich zu nicht mit LINQ to DataSet verwaltetem Code eindeutig für LINQ to DataSet sind.

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 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 verfügen über 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 finden Sie unter Nebenwirkungen 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 angezeigt, 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 wird das Ändern des Typs oder Werts einer in einer LINQ to DataSet-Anweisung verwendeten Variable von „Bearbeiten und fortfahren“ nicht unterstützt. Auch hier können Sie entweder die Änderungen rückgängig machen oder die Debugsitzung beenden und neu starten.

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

In Visual Basic in Visual Studio kann „Bearbeiten und fortfahren“ für anderen Code als LINQ to DataSet-Code und sogar in einer Methode verwendet werden, 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 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