1

LINQ to Entities 4.1 を使用しています。

LINQPAD の使用を楽しんでいますが、LINQ クエリに時間がかかる可能性があることに気付きました。これは、すべてのリンクされたテーブルもクエリされるためだと思います。私のasp.netアプリケーションで発生するトップレベルの結果セットのみが必要です。これは迅速です。Devart の Entity Developer などのツールを使用して、他の LINQ でこれに気付きました。明らかに、これはデータをドリルスルーしたい場合には非常に便利ですが、取得が遅いためにドリルスルーしない場合には便利ではありません。

ツールで発生するこのネストされた検索を停止する方法についてのアドバイス。おそらく、それは私の LINQ クエリへの追加でしょうか?

4

1 に答える 1

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; }
}
于 2013-10-21T15:06:16.207 に答える