2009-12-17 3 views
1

Lorsque vous vous connectez la sortie de la requête de LINQ to SQL via la propriété Log sur l'objet DataContext, vous obtenez une sortie similaire à:Exécution de la sortie de débogage LINQ-to-SQL?

SELECT [t0].[fullaname], [t0].[Worker], [t0].[Office] 
FROM [dbo].[Workers] AS [t0] 
WHERE [t0].[OfficeID] = @p0 
ORDER BY [t0].[Name] 
-- @p0: Input Int (Size = 0; Prec = 0; Scale = 0) [412] 
-- Context: SqlProvider(Sql2005) Model: AttributedMetaModel Build: 3.5.30729.1 

Dans cet exemple, je suis juste tirant des informations sur tous les Worker en le bureau avec ID = 412. Toutefois, cette sortie ne s'exécute pas directement dans une fenêtre SQL Management Studio Query, en raison du format commenté @p0 que les sorties LINQ.

Est-ce que quelqu'un sait s'il existe une procédure stockée qui prend ce format pour que je puisse l'exécuter? J'ai regardé les procédures de requêtes paramétrées, mais peut-être que je ne le vois pas. S'il n'y a pas de procédure, je suis sur le point d'écrire un analyseur qui va transformer ce format en SQL "normal" ...

Merci!

Note:

Je sais que je pouvais définir @p0 en haut de cela, comme le montre Help with SQL/LINQ Debugging, mais - beaucoup de ces questions que j'ai pris comme 20 paramètres, il devient beaucoup de travailler copier et coller ....

Répondre

1

Il n'y a aucun moyen d'exécuter directement ce que vous avez ci-dessus sans manuellement (ou programattiquement via une sorte d'analyse) en insérant la valeur des paramètres. Si vous utilisez SQL Profileer, vous obtiendrez une instruction SQL dynamique exécutable, c'est une bien meilleure approche, mais je me rends compte que ce n'est pas toujours possible.

+0

Ouais - Je pense que je pourrais toujours activer le profileur ... bien que ce soit sympa de pouvoir l'attraper directement depuis votre environnement de développement, en utilisant DebuggerWriter, par exemple: http://www.u2u.info/Blogs/Kris /Lists/Posts/Post.aspx?ID=11 –

+0

J'ai fini par écrire un analyseur Regex qui recherche et remplace les valeurs nécessaires. C'est agréable de pouvoir l'exécuter facilement maintenant! –

Questions connexes