1

データベース クエリにリンクされた IQUEryable で Select を実行しようとしています。正しく機能していますが、すべてのプロパティが選択されているため、別のクエリを実行しています。

私のコードは次のようになります

IQueryable<MyDataSource> data = [Some Complicated Query I've been Building Up];

var results = data.Select(d => new 
{
A = d.A,
B = d.B,
C = d.C

}).Take(100).ToArray();

現在、実際のクエリにはそれほど時間がかかっていませんが、これには時間がかかります。その上で SQL プロファイラーを実行したところ、選択しているプロパティごとに異なる SQL 選択手順を実行していることがわかりました。つまり、返すエンティティごとに (上の例では、約 300 の異なるクエリも実行されています)。フィルタリングを実行する実際の最初のクエリとして)。

私はここで何か間違ったことをしていると確信しています。それは何ですか? 私はそれが単一の大きなクエリを実行することを期待しています-これはデータソースから適切な列を選択します( [bla bla] から上位100 dA、dB、dCを選択することを知っています)、このすべての混乱ではありません。

4

1 に答える 1