データベース クエリにリンクされた 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を選択することを知っています)、このすべての混乱ではありません。