2009-08-02 53 views
0

我建立使用LINQ to SQL和C#和查詢時我檢查的最終T-SQL是建立在where子句看起來是這樣的:LINQ到SQL調試變量

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

的結構T-SQL看起來是正確的,我可以使用SQL Server Management Studio(SSMS)對其進行測試,但在代碼中不起作用。我希望能夠看看@ p0和@ p1的值。任何人都知道如何使用VS2008檢查這些值?

回答

2

如果您設置上下文的日誌(使用Log屬性),它應該在執行查詢時顯示值。這可能不如預先檢查它們那麼方便,但總比沒有好。

例如,你可能會得到類似的信息(例如,從書無恥捏):

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] 

最後一行是顯示實際的參數值位。

+0

Jon Skeet you rock!謝謝! – Guy 2009-08-02 22:37:11

0

嘗試這種情況:How to: Display Generated SQL (LINQ to SQL)

從那裏引用: 以下示例使用Log屬性代碼被執行之前在控制檯窗口中顯示的SQL代碼。您可以在查詢,插入,更新和刪除命令中使用此屬性。

控制檯窗口中的行是您執行隨後的Visual Basic或C#代碼時會看到的內容。

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