【问题标题】:Is there a way to stop LINQ queries retrieving all nested queries in tools like LINQPAD?有没有办法阻止 LINQ 查询检索 LINQPAD 等工具中的所有嵌套查询?
【发布时间】:2013-10-21 23:06:16
【问题描述】:

我正在使用 LINQ to Entities 4.1。

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

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

【问题讨论】:

    标签: linq linq-to-entities linqpad


    【解决方案1】:

    您可以使用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; }
    }
    

    【讨论】:

    • 太棒了。我很好奇转储。现在一切都清楚了。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2015-03-13
    • 2020-06-02
    • 1970-01-01
    • 2019-09-02
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多