5 votes

Linq-to-SQL ne reflète pas les modifications apportées à une procédure stockée

J'ai exposé plusieurs procédures stockées via linq-to-SQL. Après un certain temps, j'ai réalisé que j'avais besoin d'une colonne supplémentaire renvoyée par ces procédures, j'ai donc modifié les procédures, je les ai supprimées dans le design pad et j'ai recommencé.

Je vois la nouvelle colonne exposée dans toutes mes procédures sauf une - sa classe d'aide n'a pas changé du tout. Lorsque j'exécute cette procédure stockée directement, je vois la nouvelle colonne.

Qu'est-ce que je manque ? Fermer et rouvrir VS n'a pas aidé. Le nettoyage de la solution n'a pas aidé non plus. La seule solution qui a fonctionné a été de renommer la procédure. Est-ce que c'est un bug dans linq-to-sql ou est-ce que j'ai raté quelque chose ?

TIA

3voto

Bobby Borszich Points 4424

J'ai déjà rencontré cela auparavant. Le moyen le plus rapide que j'ai trouvé est de laisser tomber la tentative de SP dans un build (en supposant que vous y fassiez référence quelque part), ce qui provoquera des erreurs de build. Ensuite, lorsque vous rajoutez la SP et que vous faites une reconstruction, les métadonnées sont réécrites.

0voto

Bill Martin Points 2187

Oui, le concepteur est assez pointilleux, surtout en ce qui concerne les procs stockés. Si le nom et les champs de sortie sont identiques, il ne rafraîchit pas les métadonnées de la procédure stockée, car tout ce qui l'intéresse, c'est de savoir ce qu'il faut appeler et ce qu'il faut attendre en retour. La logique de la procédure stockée n'est pas pertinente pour L2S.

Confirmez que vous voyez le changement dans l'explorateur de serveur, en particulier les champs de sortie de la proc ( Il se peut que vous deviez rafraîchir l'explorateur de serveur pour le faire apparaître. ), puis réimporter et compiler à nouveau.

Cela devrait fonctionner.

0voto

James Kyburz Points 4352

Parfois vs studio les met en cache et l'actualisation ne fait rien, essayez de redémarrer vs studio en les supprimant et en les glissant à nouveau.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X