3

ブレークポイントで LINQ クエリから返された値を検査できない理由を理解しようとしています。結果ビューを展開すると、単に「子供を評価できませんでした」と表示されます。

一方、コードで foreach を使用して列挙するか、ToList を使用すると、デバッガーでコレクションを検査できます。

I would have thought, as it does it most other scenarios, expanding results in the debugger is equivalent to a ToList on the collection which is why I'm expecting it to work. The only thing that is a little different is that I'm calling from an EXE into a DLL, the DLL being where the objects are defined and the initial query built and returned. But I can't see it being that.

var timeboxes = assetRepo.ActiveTimeboxes();

// This can't be evaluated in the debugger
var stories = timeboxes.SelectMany(c => assetRepo.AllStories(c));

// This can be inspected in the debugger
var executedStories = stories.ToList();
4

1 に答える 1

2

VSからデバッグすることはできませんが、時々役立つLINQPadがあります。

最善のオプションは、クエリを小さなステートメントに分割することです。

于 2012-09-17T09:15:46.580 に答える