Partager via


Débogage de requêtes LINQ to DataSet

Visual Studio prend en charge le débogage du code LINQ to DataSet. Toutefois, il existe des différences entre le débogage du code LINQ to DataSet et le code managé non LINQ to DataSet. La plupart des fonctionnalités de débogage fonctionnent avec les instructions LINQ to DataSet, notamment l’exécution pas à pas, la définition de points d’arrêt et l’affichage des résultats affichés dans les fenêtres du débogueur. Toutefois, l’exécution différée d’une requête a des effets secondaires que vous devez prendre en compte lors du débogage du code LINQ to DataSet et il existe certaines limitations à l’utilisation de Edit et Continue. Cette rubrique décrit les aspects du débogage qui sont uniques à LINQ to DataSet par rapport au code managé non LINQ to DataSet.

Affichage des résultats

Vous pouvez afficher le résultat d’une instruction LINQ to DataSet à l’aide de DataTips, de la fenêtre Espion et de la boîte de dialogue Espion rapide. À l’aide d’une fenêtre source, vous pouvez suspendre le pointeur sur une requête dans la fenêtre source et une info-bulle s’affiche. Vous pouvez copier une variable LINQ to DataSet et la coller dans la fenêtre Espion ou dans la boîte de dialogue Espion. Dans LINQ to DataSet, une requête n’est pas évaluée lorsqu’elle est créée ou déclarée, mais uniquement lorsque la requête est exécutée. Il s’agit de l’exécution différée. Par conséquent, la variable de requête n’a pas de valeur tant qu’elle n’est pas évaluée. Pour plus d’informations, consultez Requêtes dans LINQ to DataSet.

Le débogueur doit évaluer une requête pour afficher les résultats de la requête. Cette évaluation implicite se produit lorsque vous affichez un résultat de requête LINQ to DataSet dans le débogueur et qu’elle a des effets à prendre en compte. Chaque évaluation de la requête prend du temps. Le développement du nœud de résultats prend du temps. Pour certaines requêtes, une évaluation répétée peut entraîner une pénalité de performances notable. L’évaluation d’une requête peut également entraîner des effets secondaires, qui sont des modifications apportées à la valeur des données ou à l’état de votre programme. Toutefois, les requêtes ne présentent pas toutes des effets secondaires. Pour déterminer si une requête peut être évaluée en toute sécurité sans effets secondaires, vous devez comprendre le code qui implémente la requête. Pour plus d’informations, consultez Effets secondaires et expressions.

Modifier et continuer

Edit and Continue ne prend pas en charge les modifications apportées aux requêtes LINQ to DataSet. Si vous ajoutez, supprimez ou modifiez une instruction LINQ to DataSet pendant une session de débogage, une boîte de dialogue s’affiche qui vous indique que la modification n’est pas prise en charge par Edit et Continue. À ce stade, vous pouvez annuler les modifications ou arrêter la session de débogage et redémarrer une nouvelle session avec le code modifié.

En outre, Edit and Continue ne prend pas en charge la modification du type ou de la valeur d’une variable utilisée dans une instruction LINQ to DataSet. Là encore, vous pouvez annuler les modifications ou arrêter et redémarrer la session de débogage.

Dans Visual C# dans Visual Studio, vous ne pouvez pas utiliser Edit et Continuer sur un code dans une méthode qui contient une requête LINQ to DataSet.

Dans Visual Basic dans Visual Studio, vous pouvez utiliser Edit and Continue on non-LINQ to DataSet code, même dans une méthode qui contient une requête LINQ to DataSet. Vous pouvez ajouter ou supprimer du code avant l’instruction LINQ to DataSet, même si les modifications affectent le numéro de ligne de la requête LINQ to DataSet. Votre expérience de débogage Visual Basic pour le code non LINQ to DataSet reste identique à celle de LINQ to DataSet avant l’introduction de LINQ to DataSet. Vous ne pouvez pas modifier, ajouter ou supprimer une requête LINQ to DataSet, toutefois, sauf si vous arrêtez le débogage pour appliquer les modifications.

Voir aussi