为什么 .Dump(#) 会导致我的结果翻倍?
当我使用 LinqPad 运行 OData 查询时,有时需要超过标准 3 层嵌套/扩展。
我在网上发现可以调用Dump(int NestingLevel)
来获得更多级别的嵌套。
但是当我这样做时,我得到两个结果集。 (一个是我扩展的嵌套,另一个是没有 .Dump
调用。)
这是为什么呢?有什么办法可以把它关掉吗?
作为示例,连接到 https://data.stackexchange.com/stackoverflow/atom 并运行此查询:
Posts.Take(1).Select(x=>new{x.Title}).Dump(1)
您将得到两个相同的结果集。像这样:
When I run an OData query with LinqPad, I sometimes need more than the standard 3 levels of nesting/expanding.
I found online that you can call Dump(int nestingLevel)
to get more levels of nesting.
But when I do that I get two result sets. (One with my expanded nesting, and one as it would be without the .Dump
call.)
Why is that? Is there a way I can turn that off?
As an example connect to https://data.stackexchange.com/stackoverflow/atom and run this query:
Posts.Take(1).Select(x=>new{x.Title}).Dump(1)
You will get two identical result sets. Like this:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当您运行
C# Expression
查询时,查询的结果会自动转储。LINQPad 编译代码
您的代码也调用
Dump()
,因此您在返回到外部生成的Dump()
调用之前转储对象。(
Dump()
返回其参数以允许链接)您只需在
C# 语句
(或更高版本)查询中使用Dump()
,或者如果你想扔掉其他东西。When you run a
C# Expression
query, the query's result is automatically dumped.LINQPad compiles the code
Your code calls
Dump()
too, so you're dumping the object before returning to the outer generatedDump()
call.(
Dump()
returns its argument to allow chaining)You only need to
Dump()
in aC# Statements
(or higher) query, or if you want to dump something else.