我正在尝试找出是否有一种方法可以检索在数据库服务器上执行的(完整)SQL语句。
我已经找到了一些东西,但它并不完全符合我的要求:
IQueryable<SomeType> someQuery = ...
string command = dataContext.GetCommand(query).CommandText;
在我的情况下,这会给我一个类似于命令字符串的东西:
SELECT TOP (50) [t0].[ID], ....
FROM [dbo].[someTable] AS [t0]
WHERE ([t0].[someColumn] IS NOT NULL) AND (([t0].[someColumn]) IN (@p0))
在数据库中执行了:
exec sp_executesql N'SELECT TOP (50) [t0].[ID], ...
FROM [dbo].[someTable] AS [t0]
WHERE ([t0].[someColumn] IS NOT NULL) AND (([t0].[someColumn]) IN (@p0, @p1))',N'@p0 int,@p1 int',@p0=401,@p1=201
有没有办法从 C# 代码中检索出这个“完整”的语句(包括参数值)?