Débogage des requêtes LINQ to DataSet
Visual Studio prend en charge le débogage du code LINQ to DataSet. Cependant, il existe des différences entre le débogage du code LINQ to DataSet et celui du code managé non-LINQ to DataSet. La plupart des fonctionnalités de débogage sont compatibles avec les instructions LINQ to DataSet, y compris l’exécution pas à pas, la définition de points d’arrêt et la visualisation des résultats dans les fenêtres du débogueur. Cependant, l’exécution différée des requêtes a des effets de bord qui doivent être pris en compte lors du débogage du code LINQ to DataSet, de même qu’il existe certaines limitations dans l’utilisation de Modifier & Continuer. Cette rubrique traite des aspects du débogage propres à LINQ to DataSet par rapport au code managé non-LINQ to DataSet.
Affichage des résultats
Vous pouvez visualiser le résultat d’une instruction LINQ to DataSet en utilisant des DataTips, la fenêtre Espion et la boîte de dialogue Espion express. En utilisant une fenêtre source, vous pouvez suspendre le pointeur sur une requête dans la fenêtre source pour afficher un DataTip. Vous pouvez copier une variable LINQ to DataSet et la coller dans la fenêtre Espion ou dans la boîte de dialogue Espion express. Dans LINQ to DataSet, une requête n’est pas évaluée quand elle est créée ou déclarée, mais seulement quand elle est exécutée. On parle alors d’exécution différée. Par conséquent, la variable de requête ne possède de valeur que lorsqu'elle est évaluée. Pour plus d’informations, consultez Requêtes dans LINQ to DataSet.
Pour afficher les résultats d'une requête, le débogueur doit l'évaluer. Cette évaluation implicite se produit quand vous visualisez le résultat d’une requête LINQ to DataSet dans le débogueur, et elle a quelques effets dont vous devez tenir compte. Chaque évaluation de la requête prend du temps. Le développement du nœud de résultats est long. Ainsi, pour certaines requêtes, une évaluation répétée peut diminuer considérablement les performances. L'évaluation d'une requête provoque aussi des effets secondaires, à savoir des modifications de la valeur des données ou de l'état du programme. Toutefois, les requêtes ne présentent pas toutes des effets secondaires. Pour savoir si une requête peut être évaluée sans risque et sans effets secondaires, vous devez comprendre le code qui implémente la requête. Pour plus d’informations, consultez Effets de bord et expressions.
Modifier & Continuer
Modifier & Continuer 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 apparaît pour signaler que la modification n’est pas prise en charge par Modifier & Continuer. À ce stade, vous pouvez annuler les modifications apportées ou arrêter la session de débogage et redémarrer une nouvelle session avec le code modifié.
De plus, Modifier & Continuer ne prend pas en charge la modification du type ou de la valeur d’une variable utilisée dans une instruction LINQ to DataSet. Ici aussi, vous pouvez annuler les modifications apportées ou arrêter et redémarrer la session de débogage.
Dans Visual C# de Visual Studio, vous ne pouvez pas utiliser Modifier & Continuer dans le code d’une méthode qui contient une requête LINQ to DataSet.
Dans Visual Basic de Visual Studio, vous ne pouvez pas utiliser Modifier & Continuer dans du code non-LINQ to DataSet, 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 apportées affectent le numéro de ligne de la requête LINQ to DataSet. Votre expérience de débogage Visual Basic pour du code non-LINQ to DataSet reste comme elle était avant l’introduction de LINQ to DataSet. Cependant, vous ne pouvez pas modifier, ajouter ou supprimer une requête LINQ to DataSet, sauf si vous arrêtez le débogage pour appliquer les modifications.