0

私が次のことをするとどうなりますか:

var query = from a in OBJ where a.ID == ID select c;

1秒未満ですが、IQueryable関数を追加すると、〜3秒に増加しますか?

var query = (from a in OBJ where a.ID == ID select c).SingleOrDefault();

FirstOrDefault() を使用した場合も同じことが起こります。

4

1 に答える 1

10

これ:

var query = from a in OBJ where a.ID == ID select c;

...クエリを表すだけです。まったく実行しません。「1秒未満」ではなく、「ほぼ計り知れないほどの速さ」です。

これ:

var query = (from a in OBJ where a.ID == ID select c).SingleOrDefault();

...実際のデータを取得します。つまり、クエリを実行する必要があります。

一般に、LINQ は可能な限り遅延実行を使用します。これはほんの一例です。LINQ deferred execution を検索すると、読みたい記事がたくさんヒットします。あなたの読書スタイルに最も適したものに飛び込んでください:)

于 2012-06-29T19:39:05.830 に答える