如何查看LINQ查询的输入?

时间:2009-05-13 16:25:23

标签: linq linq-to-sql

我有一个看起来像这样的LINQ查询(最后):

var query = from myTable0 ... where myTable1.attributeId == 123 && (bunchaStrings.Contains(myTable1.attributeName)) && myTable2.yesNoValue == 'Y'

当我看到查询时,它变成了这个

SELECT ... FROM ... INNER JOIN ... WHERE ... AND (UNICODE([t3].[yesNoValue]) = @p3

所以这里发生的是'Y'的值通过UNICODE函数变成'89'。这一切都很好,但我真的希望能够直接看到@ p3的值,我无法弄清楚如何通过我的var中提供的任何方法来查看该值。

2 个答案:

答案 0 :(得分:1)

我建议将生成的SQL传递给输出窗口。在那里,您将能够看到整个SQL和您的参数值。然后它也可以被记录。

可在此处找到代码 - > http://www.u2u.info/Blogs/Kris/Lists/Posts/Post.aspx?ID=11

或者更简单的方法(如果你有一个方便的控制台):

 MyDataContext context = new MyDataContext()
 context.Log = Console.Out

答案 1 :(得分:1)