偵錯 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 陳述式的結果。 藉由使用來源視窗,您可以在來源視窗中暫停查詢的指標,而且 DataTip 將會出現。 您可以複製 LINQ to DataSet 變數,並將其貼入 [監看式] 視窗或 [快速監看式] 對話方塊中。 在 LINQ to DataSet 中建立或宣告查詢時,不會評估該查詢,只有在執行查詢時,才會進行評估。 這稱為「延後執行」。 因此,查詢變數在接受評估前沒有值。 如需詳細資訊,請參閱 LINQ to DataSet 中的查詢

偵錯工具必須評估查詢,才能顯示查詢結果。 當您在偵錯工具中檢視 LINQ to DataSet 查詢結果時,會發生這個隱含的評估,而且該評估會產生一些您應該考慮的效果。 每個查詢評估會耗費些許時間。 展開結果節點也會耗用時間。 對於某些查詢而言,重複的評估可能會造成明顯的效能影響。 評估查詢也可能造成變更資料值與程式狀態的副作用。 並不是所有的查詢都有副作用。 若要判斷查詢是否可以安全地接受評估而沒有副作用,您必須了解實作查詢的程式碼。 如需詳細資訊,請參閱副作用和運算式

編輯後繼續

[編輯後繼續] 不支援對 LINQ to 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 查詢 (除非您停止偵錯來套用變更)。

另請參閱