Débogage des requêtes LINQ to DataSet
Visual Studio 2010 prend en charge le débogage du code LINQ to DataSet. Il y a cependant certaines différences entre le débogage de code managé LINQ to DataSet et non-LINQ to DataSet. La plupart des fonctionnalités de débogage sont compatibles avec les instructions LINQ to DataSet, notamment l'exécution pas à pas, la définition de points d'arrêt et la consultation des résultats dans les fenêtres du débogueur. Cependant, l'exécution différée des requêtes a des effets secondaires qui doivent être pris en compte lors du débogage du code LINQ to DataSet, de même qu'il existe certaines limitations d'utilisation de Modifier & Continuer. Cette rubrique traite des aspects du débogage qui sont spécifiques à LINQ to DataSet par rapport au code managé non-LINQ to DataSet.
Affichage des résultats
Vous pouvez consulter le résultat d'une instruction LINQ to DataSet à l'aide des DataTips, de la fenêtre Espion et de 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 lorsqu'elle est créée ou déclarée, mais uniquement lors de son exécution. 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, voir 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 lorsque vous consultez le résultat d'une requête LINQ to DataSet dans le débogueur, et elle entraîne 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 également 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, voir Effets secondaires 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 s'affiche 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.
En Visual C# 2010, vous ne pouvez pas utiliser Modifier & Continuer dans un code d'une méthode contenant une requête LINQ to DataSet.
En Visual Basic 2010, vous pouvez utiliser Modifier & Continuer dans un code non-LINQ to DataSet, même dans une méthode contenant 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 concernent 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 telle qu'elle était avant l'introduction de LINQ to DataSet. Toutefois, vous ne pouvez pas modifier, ajouter ou supprimer une requête LINQ to DataSet, sauf si vous souhaitez arrêter le débogage afin d'appliquer les modifications apportées.