2012-01-04 71 views
7

当我遍历代码并得到linq语句时,逐步执行过程和被评估的行(以及它们的顺序)与代码写入的行不同。我知道这是一个像产量等单步执行Linq语句提示

我的问题是命令来完成:

  1. 什么我需要学习理解为什么代码在它(LINQ的语句)的方式调试?
  2. Linq语句有哪些技巧?

呵呵,我用的是Visual Studio 2010 Ultimate。

回答

2

根据MSDN

Any query that compiles to an expression tree produces code that is beyond the control of the debugger.

所以你将不能够完全调试通过Visual Studio调试LINQ查询。

有几个工具可以帮助例如Linq Pad

This page还介绍了一些技术,可用于调试的LINQ语句有关调试的LINQ

This is another详细的文章

0

我不知道任何其他方法调试生成IL code,然后使用 Sos,您的二进制文件。你可以做所有事情(如果不是更多的话),那么你可以在VS debugging tools可能是一个多线程调试的东西,在VS中做的更好)做。但是,考虑到LINQ代码不是您在代码文件中看到的代码,而是在编译时生成的IL code,我想说,对我来说,这是在类似代码上制作StepInto/Over/Out的唯一可能方式。