2009-08-02 11 views
0

Je construis une requête en utilisant LINQ to SQL et C# et quand j'inspecte le T-SQL final qui est construit la clause where ressemble à ceci:LINQ à des variables de débogage SQL

WHERE ([t0].[T_SUBJECT] LIKE @p0) AND ([t0].[T_SUBJECT] LIKE @p1) 

La structure de le T-SQL semble correct et je peux le tester en utilisant SQL Server Management Studio (SSMS) mais dans le code cela ne fonctionne pas. J'aimerais pouvoir regarder les valeurs de @ p0 et @ p1. Quelqu'un sait comment inspecter ces valeurs en utilisant VS2008?

Répondre

2

Si vous définissez le journal pour le contexte (avec la propriété Log), il doit afficher les valeurs lors de l'exécution de la requête. Ce n'est peut-être pas aussi pratique que de pouvoir les examiner à l'avance, mais c'est mieux que rien.

Par exemple, vous obtiendrez peut-être quelque chose comme (par exemple sans vergogne pincé du livre):

SELECT [t0].[UserID], [t0].[Name], [t0].[UserType] 
FROM [dbo].[DefectUser] AS [t0] 
WHERE [t0].[Name] = @p0 
-- @p0: Input String (Size = 11; Prec = 0; Scale = 0) [Tim Trotter] 

La dernière ligne est le bit indiquant la valeur du paramètre réel.

+0

Jon Skeet vous rock! Je vous remercie! – Guy

0

Essayez ceci: How to: Display Generated SQL (LINQ to SQL)

Je cite là: L'exemple suivant utilise la propriété Log pour afficher le code SQL dans la fenêtre de la console avant que le code est exécuté. Vous pouvez utiliser cette propriété avec les commandes query, insert, update et delete.

Les lignes de la fenêtre de console sont ce que vous verriez lorsque vous exécutez le code Visual Basic ou C# qui suit.

SELECT [t0].[CustomerID], [t0].[CompanyName], [t0].[ContactName], [t0].[ContactT 

itle], [t0].[Address], [t0].[City], [t0].[Region], [t0].[PostalCode], [t0].[Coun 

try], [t0].[Phone], [t0].[Fax] 

FROM [dbo].[Customers] AS [t0] 

WHERE [t0].[City] = @p0 

-- @p0: Input String (Size = 6; Prec = 0; Scale = 0) [London] 

-- Context: SqlProvider(Sql2005) Model: AttributedMetaModel Build: 3.5.20810.0 

AROUT 

BSBEV 

CONSH 

EASTC 

NORTS 

SEVES