Почему .Dump (#) заставляет мои результаты удваиваться? - PullRequest
4 голосов
/ 03 октября 2011

Когда я запускаю запрос OData с LinqPad, мне иногда требуется больше, чем стандартные 3 уровня вложенности / расширения.

В Интернете я обнаружил, что вы можете позвонить Dump(int nestingLevel), чтобы получить больше уровней вложенности.

Но когда я это делаю, я получаю два набора результатов.(Один с моим расширенным вложением, другой без вызова .Dump.)

Почему это так?Есть ли способ, которым я могу отключить это?

В качестве примера подключитесь к http://data.stackexchange.com/stackoverflow/atom и выполните этот запрос:

Posts.Take(1).Select(x=>new{x.Title}).Dump(1)

Вы получите два идентичных набора результатов.Как это:

LinqPad Double

1 Ответ

6 голосов
/ 03 октября 2011

Когда вы запускаете запрос C# Expression, результат запроса автоматически выгружается.

LINQPad компилирует код

LINQPad.Dump(
    //Your code here
);

Ваш код также вызывает Dump(), поэтому вы сбрасываете объект перед возвратом к внешнему сгенерированному Dump() вызову.
(Dump() возвращает свой аргумент для разрешения цепочки)

Вам нужно только Dump() в запросе C# Statements (или выше), или если вы хотите сбросить что-то еще.

...