2009-08-12 11 views
0

特定の基準に合致するシステム内の製品を取得する必要があります。HQL対Linq toオブジェクト

HQLを作成し、DBの条件に一致するすべての製品を取得するか、Linqクエリを直接システムのすべての製品を含むメインリストに書き込むべきかどうかを決定する必要があります。オブジェクトのろ過がデータベースに起こるので

答えて

6

アンNHibernateのクエリが良いだろう、より良いパフォーマンスを万力でなければなりません

。 LINQ to Objectsを使用すると、実際には必要のないオブジェクトをデータベースから返す可能性が高くなります。

可能であれば、結果セットをデータベースにフィルタリングしてください。これにより、可能な限り最高のパフォーマンスが得られます(他のすべてが等しい)。

+1

非常に小さな結果セットでは必ずしも真であるとは限りません。 –

+3

@Pavel - あなたの声明をバックアップする証拠はありますか?リレーショナルデータベースからすべてのオブジェクトを取得し、適切にインデックスを作成したデータベースでよく書かれたクエリを使用するのではなく、メモリ内のオブジェクトをフィルタする方が速いという完全な例を見ることに興味があります。 –

+1

LINQを使用すると、オブジェクトに頼らずにデータベースから要素をフィルタできます。 –