有没有办法阻止LINQ查询检索LINQPAD等工具中的所有嵌套查询?

时间:2013-10-21 10:11:25

标签: linq linq-to-entities linqpad

我正在使用LINQ to Entities 4.1。

使用LINQPAD,但我注意到LINQ查询可能需要很长时间,而且我认为这也是由于所有链接表都被查询。我只需要在我的asp.net应用程序中发生的顶级结果集,这很快。我在其他LINQ中使用Devart的Entity Developer等工具注意到了这一点。显然,当您想要浏览数据时,这非常有用,但是当您由于检索速度慢而不能这样做时,这非常有用。

关于如何阻止在工具中发生嵌套检索的建议。也许它是我的LINQ查询的补充?

1 个答案:

答案 0 :(得分:4)

您可以使用Dump(this object o, int depth)重载来控制查询的深度。

例如:

myQuery.Dump(1);

只会从返回的对象的属性中选择内容,而不会选择这些属性的属性。

如果您运行以下示例,您可以看到它的实际效果:

void Main()
{
    var a = new A
    {
        B = new B
        {
            Foo = "Deep",
        },
    };

    a.Dump();  //Shows properties of all properties.
    a.Dump(1); //Does not show properties of B.
}

class A
{
    public B B { get; set; }
}

class B
{
    public String Foo { get; set; }
}