Debug di query di LINQ to DataSetDebugging LINQ to DataSet Queries

In Visual Studio 2012Visual Studio 2012 è supportato il debug di codice LINQ to DataSetLINQ to DataSet.Visual Studio 2012Visual Studio 2012 supports the debugging of LINQ to DataSetLINQ to DataSet code. Vi sono tuttavia alcune differenze tra l'esecuzione del debug di codice LINQ to DataSetLINQ to DataSet e di codice gestito non LINQ to DataSetLINQ to DataSet.However, there are some differences between debugging LINQ to DataSetLINQ to DataSet code and non-LINQ to DataSetLINQ to DataSet managed code. La maggior parte delle funzionalità di debug è compatibile con le istruzioni LINQ to DataSetLINQ to DataSet, inclusa l'esecuzione di istruzioni, l'impostazione dei punti di interruzione e la visualizzazione dei risultati nelle finestre del debugger.Most debugging features work with LINQ to DataSetLINQ to DataSet statements, including stepping, setting breakpoints, and viewing results that are shown in debugger windows. Posticipata, tuttavia, l'esecuzione in ha alcuni effetti collaterali da prendere in considerazione durante il debug di query LINQ to DataSetLINQ to DataSet del codice e sono previste alcune limitazioni all'utilizzo di modifica e continuazione.However, deferred query execution in has some side effects that you should consider while debugging LINQ to DataSetLINQ to DataSet code and there are some limitations to using Edit and Continue. In questo argomento vengono illustrati gli aspetti del debug che la contraddistinguono LINQ to DataSetLINQ to DataSet rispetto a non -LINQ to DataSetLINQ to DataSet codice gestito.This topic discusses aspects of debugging that are unique to LINQ to DataSetLINQ to DataSet compared to non-LINQ to DataSetLINQ to DataSet managed code.

Visualizzazione dei risultatiViewing Results

È possibile visualizzare il risultato di un LINQ to DataSetLINQ to DataSet istruzione utilizzando i suggerimenti dati, finestra Espressioni di controllo e la finestra di dialogo Controllo immediato.You can view the result of a LINQ to DataSetLINQ to DataSet statement by using DataTips, the Watch window, and the QuickWatch dialog box. Quando si usa una finestra di origine, passare con il puntatore su una query nella finestra di origine per visualizzare un suggerimento dati.By using a source window, you can pause the pointer on a query in the source window and a DataTip will appear. È possibile copiare una variabile LINQ to DataSetLINQ to DataSet e incollarla nella finestra Espressioni di controllo o nella finestra di dialogo Controllo immediato.You can copy a LINQ to DataSetLINQ to DataSet variable and paste it into the Watch window or the QuickWatch dialog box. In LINQ to DataSetLINQ to DataSet le query non vengono valutate al momento della creazione o della dichiarazione, ma solo quando vengono eseguite.In LINQ to DataSetLINQ to DataSet, a query is not evaluated when it is created or declared, but only when the query is executed. Si tratta di esecuzione posticipata.This is called deferred execution. La variabile della query non dispone pertanto di un valore fino a quando non viene valutata.Therefore, the query variable does not have a value until it is evaluated. Per ulteriori informazioni, vedere query in LINQ to DataSet.For more information, see Queries in LINQ to DataSet.

Per visualizzare i risultati della query, è necessario che la query venga valutata dal debugger.The debugger must evaluate a query to display the query results. Questa valutazione implicita si verifica quando si visualizza un LINQ to DataSetLINQ to DataSet risultato della query nel debugger e ha alcuni effetti deve tenere in considerazione.This implicit evaluation occurs when you view a LINQ to DataSetLINQ to DataSet query result in the debugger, and it has some effects you should consider. La singola valutazione della queryEach evaluation of the query takes time. e l'espansione del nodo dei risultati richiedono tempo.Expanding the results node takes time. La valutazione ripetuta di alcune query può comportare una notevole riduzione delle prestazioni.For some queries, repeated evaluation might cause a noticeable performance penalty. La valutazione di una query può inoltre avere come effetto collaterale la modifica del valore dei dati o dello stato del programma.Evaluating a query can also cause side effects, which are changes to the value of data or the state of your program. Non tutte le query hanno effetti collaterali.Not all queries have side effects. Per determinare la possibilità di valutare una query in modo sicuro, senza effetti collaterali, è necessario conoscere il codice con cui la query viene implementata.To determine whether a query can be safely evaluated without side effects, you must understand the code that implements the query. Per ulteriori informazioni, vedere effetti collaterali ed espressioni.For more information, see Side Effects and Expressions.

Modifica e continuazioneEdit and Continue

Modifica e continuazione non supporta modifiche a LINQ to DataSetLINQ to DataSet query.Edit and Continue does not support changes to LINQ to DataSetLINQ to DataSet queries. Se si aggiunge, rimuovere o modificare un LINQ to DataSetLINQ to DataSet viene visualizzata una finestra di dialogo di istruzione durante una sessione di debug, indicante che la modifica non è supportata da modifica e continuazione.If you add, remove, or change a LINQ to DataSetLINQ to DataSet statement during a debugging session, a dialog box appears that tells you the change is not supported by Edit and Continue. A questo punto è possibile annullare la modifica oppure interrompere la sessione di debug per avviare una nuova sessione con il codice modificato.At that point, you can either undo the changes or stop the debugging session and restart a new session with the edited code.

Inoltre, modifica e continuazione non supporta la modifica del tipo o il valore di una variabile che viene utilizzata in un LINQ to DataSetLINQ to DataSet istruzione.In addition, Edit and Continue does not support changing the type or the value of a variable that is used in a LINQ to DataSetLINQ to DataSet statement. Anche in questo caso è possibile annullare le modifiche oppure interrompere e riavviare la sessione di debug.Again, you can either undo the changes or stop and restart the debugging session.

In Visual c# in Visual Studio, non è possibile utilizzare Modifica e continuazione su qualsiasi codice in un metodo che contiene un LINQ to DataSetLINQ to DataSet query.In Visual C# in Visual Studio, you cannot use Edit and Continue on any code in a method that contains a LINQ to DataSetLINQ to DataSet query.

In Visual Basic in Visual Studio, è possibile utilizzare Modifica e continuazione su nonLINQ to DataSetLINQ to DataSet codice, anche in un metodo che contiene un LINQ to DataSetLINQ to DataSet query.In Visual Basic in Visual Studio, you can use Edit and Continue on non-LINQ to DataSetLINQ to DataSet code, even in a method that contains a LINQ to DataSetLINQ to DataSet query. È possibile aggiungere o rimuovere codice prima di LINQ to DataSetLINQ to DataSet istruzione, anche se le modifiche influiscono sul numero di riga di LINQ to DataSetLINQ to DataSet query.You can add or remove code before the LINQ to DataSetLINQ to DataSet statement, even if the changes affect line number of the LINQ to DataSetLINQ to DataSet query. Esecuzione del debug di Visual Basic nonLINQ to DataSetLINQ to DataSet codice rimane invariato prima LINQ to DataSetLINQ to DataSet introdotta.Your Visual Basic debugging experience for non-LINQ to DataSetLINQ to DataSet code remains the same as it was before LINQ to DataSetLINQ to DataSet was introduced. Non è possibile modificare, aggiungere o rimuovere un LINQ to DataSetLINQ to DataSet esegue una query, tuttavia, a meno che non si arresta il debug per applicare le modifiche.You cannot change, add, or remove a LINQ to DataSetLINQ to DataSet query, however, unless you stop debugging to apply the changes.

Vedere ancheSee Also

Debug di codice gestitoDebugging Managed Code
Guida per programmatoriProgramming Guide