Visual Studio 支援 LINQ to DataSet 程式代碼的偵錯。 不過,偵錯 LINQ to DataSet 程式代碼與非 LINQ to DataSet Managed 程式代碼之間有一些差異。 大部分的偵錯功能都適用於 LINQ to DataSet 語句,包括逐步執行、設定斷點,以及檢視調試程式視窗中顯示的結果。 但是,延遲查詢執行會帶來一些副作用,您在偵錯 LINQ to DataSet 程式代碼時應該加以考慮,並且使用 Edit and Continue 功能時有一些限制。 本主題討論 LINQ to DataSet 相較於非 LINQ to DataSet 的受管理程式碼所特有的偵錯層面。
檢視結果
您可以使用 [數據提示]、[監看式] 視窗和 [快速監看式] 對話框來檢視 LINQ to DataSet 語句的結果。 藉由使用來源視窗,您可以在來源視窗中暫停查詢上的指標,而且會出現 DataTip。 您可以複製 LINQ to DataSet 變數,並將其貼到 [監看式] 視窗或 [快速監看式] 對話框中。 在 LINQ to DataSet 中,查詢在建立或宣告時不會評估,但只有在執行查詢時才會評估。 這稱為 延後執行。 因此,查詢變數在評估之前沒有值。 如需詳細資訊,請參閱 LINQ to DataSet 中的查詢。
調試程式必須評估查詢以顯示查詢結果。 當您在調試程式中檢視 LINQ to DataSet 查詢結果時,就會發生這個隱含評估,而且它具有您應該考慮的一些效果。 每個查詢評估都需要時間。 展開結果節點需要時間。 對於某些查詢,重複評估可能會導致明顯的效能降低。 評估查詢也可能造成副作用,這些副作用會變更數據值或程序的狀態。 並非所有查詢都有副作用。 若要判斷是否可以安全地評估查詢,而不會產生副作用,您必須了解實作查詢的程序代碼。 如需詳細資訊,請參閱 副作用和表達式。
編輯後繼續
編輯與繼續不支援變更 LINQ 到 DataSet 的查詢。 如果您在偵錯會話期間新增、移除或變更 LINQ to DataSet 語句,則會出現一個對話方塊,指出 [編輯後繼續] 不支持變更。 此時,您可以復原變更或停止偵錯會話,並使用編輯的程式代碼重新啟動新的會話。
此外,[編輯後繼續] 不支持變更 LINQ to DataSet 語句中使用的變數類型或值。 同樣地,您可以復原變更或停止並重新啟動偵錯會話。
在 Visual Studio 的 Visual C# 中,您無法在包含 LINQ to DataSet 查詢的方法中的任何程式代碼上使用 [編輯後繼續]。
在 Visual Studio 的 Visual Basic 中,您可以在非 LINQ to DataSet 程式代碼上使用 [編輯後繼續],即使在包含 LINQ to DataSet 查詢的方法中也是如此。 即使變更會影響 LINQ to DataSet 查詢的行號,您也可以在 LINQ to DataSet 語句之前新增或移除程式代碼。 非 LINQ to DataSet 程式代碼的 Visual Basic 偵錯體驗仍與 LINQ to DataSet 引進之前相同。 不過,除非您停止偵錯以套用變更,否則您無法變更、新增或移除LINQ to DataSet查詢。