Condividi tramite


Debug di query di LINQ to DataSet

Visual Studio supporta il debug del codice LINQ to DataSet. Esistono tuttavia alcune differenze tra il debug del codice LINQ to DataSet e il codice gestito non LINQ to DataSet. La maggior parte delle funzionalità di debug è compatibile con le istruzioni LINQ to DataSet, inclusa l'esecuzione di istruzioni, l'impostazione dei punti di interruzione e la visualizzazione dei risultati nelle finestre del debugger. L'esecuzione posticipata di query implica tuttavia alcuni effetti collaterali che è necessario tenere in considerazione durante il debug di codice LINQ to DataSet e sono previste alcune limitazioni all'utilizzo di Modifica e continuazione. In questo argomento vengono illustrati gli aspetti del debug specifici di LINQ to DataSet rispetto al codice gestito non LINQ to DataSet.

Visualizzare i risultati

È possibile visualizzare il risultato di un'istruzione LINQ to DataSet usando i suggerimenti dati, la finestra Espressioni di controllo e la finestra di dialogo Controllo immediato. Quando si usa una finestra di origine, passare con il puntatore su una query nella finestra di origine per visualizzare un suggerimento dati. È possibile copiare una variabile LINQ to DataSet e incollarla nella finestra Espressioni di controllo o nella finestra di dialogo Controllo immediato. In LINQ to DataSet le query non vengono valutate al momento della creazione o della dichiarazione, ma solo quando vengono eseguite. Questo processo è noto come esecuzione posticipata. La variabile della query non dispone pertanto di un valore fino a quando non viene valutata. Per altre informazioni, vedere Query in LINQ to DataSet.

Per visualizzare i risultati della query, è necessario che la query venga valutata dal debugger. Questa valutazione implicita si verifica quando si visualizza un risultato della query LINQ to DataSet nel debugger e presenta alcuni effetti da considerare. La singola valutazione della query e l'espansione del nodo dei risultati richiedono tempo. La valutazione ripetuta di alcune query può comportare una notevole riduzione delle prestazioni. La valutazione di una query può inoltre avere come effetto collaterale la modifica del valore dei dati o dello stato del programma. Non tutte le query hanno effetti collaterali. Per determinare la possibilità di valutare una query in modo sicuro, senza effetti collaterali, è necessario conoscere il codice con cui la query viene implementata. Per altre informazioni, vedere Effetti collaterali ed espressioni.

Modifica e continuazione

Modifica e continuazione non supporta la modifica di query LINQ to DataSet. Se si prova ad aggiungere, rimuovere o modificare un'istruzione LINQ to DataSet durante una sessione di debug, viene visualizzata una finestra di dialogo che indica che la modifica non è supportata da Modifica e continuazione. A questo punto è possibile annullare la modifica oppure interrompere la sessione di debug per avviare una nuova sessione con il codice modificato.

Modifica e continuazione non supporta neanche la modifica del tipo o del valore di una variabile usata in un'istruzione LINQ to DataSet. Anche in questo caso è possibile annullare le modifiche oppure interrompere e riavviare la sessione di debug.

In Visual C# in Visual Studio non è possibile usare Modifica e continuazione su alcun tipo di codice in un metodo contenente una query LINQ to DataSet.

In Visual Basic in Visual Studio è possibile usare Modifica e continuazione nel codice non LINQ to DataSet, anche in un metodo che contiene una query LINQ to DataSet. È possibile aggiungere o rimuovere codice prima dell'istruzione LINQ to DataSet, anche se le modifiche influiscono sul numero di riga della query LINQ to DataSet. Le modalità di esecuzione del debug Visual Basic per il codice non LINQ to DataSet rimangono invariate rispetto a prima dell'introduzione di LINQ to DataSet. Non è tuttavia possibile modificare, aggiungere o rimuovere query LINQ to DataSet, a meno che non si voglia interrompere il debug per applicare le modifiche.

Vedi anche