2011-01-21 11 views
0

IQueryableの使用に関するパフォーマンス上の問題はありますか?
さらに、IQueryableの代わりにカーソルを使用した場合(これは良いことです)。
IQueryableIEnumerableIList
私はデータベースとしてMongoDBを使用しています。ありがとうIQueryableを使用する際の短所!

+1

パフォーマンス上の最大の問題は、MongoDBの可能性が高いです。あなたが.Netについて心配する前に、私はそこを見るでしょう。 – Lazarus

+1

いいえ、私はそうは思わない:D – Rawhi

答えて

4

私はどのようにMongoDBはC#の結合作品を知っているが、それは通常、どのように動作するかを説明していない:式ツリーが構築されるIQueryableを使用する場合

、その後に実行され、データベースが理解できる形式に変換し、データベースサーバー。

これは通常、データベースが理解できる形式でクエリを直接書き込むのと比較して、オーバーヘッドが小さくなります(表現式ツリーを構築して変換します)。

IEnumerableでは、式の代わりに代理人が使用されます。完全なデータセットを反復処理してから、Linq-To-Objectsを使用してフィルタリングする必要があります。これはずっと遅いです。

4

これらはインターフェイスが異なるだけで、実装に実装されていないため、使用するパフォーマンスには関係ありません。

値をループすると、アクセスするインターフェイスに関係なく、実際のクラスの列挙子が使用されます。

関連する問題