我正在使用LINQ to SQL和C#构建查询,当我检查构建的最终T-SQL时,where子句如下所示:
WHERE ([t0].[T_SUBJECT] LIKE @p0) AND ([t0].[T_SUBJECT] LIKE @p1)
T-SQL的结构看起来是正确的,我可以使用SQL Server Management Studio(SSMS)测试它,但在代码中它不起作用。我希望能够看一下@ p0和@ p1的值。有人知道如何使用VS2008检查这些值吗?
答案 0 :(得分: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]
最后一行是显示实际参数值的位。
答案 1 :(得分: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