これらのLINQ式を使用した確認/説明を探しています。
var context = new SomeCustomDbContext()
// LINQ to Entities?
var items = context.CustomItems.OrderBy(i => i.Property).ToList();
// LINQ to Objects?
var items2 = context.CustomItems.ToList().OrderBy(i => i.Property);
LINQ to Entities
最初の方法は、EFが渡すためのより具体的なSQLステートメントを作成し、データベースに順序付けの労力をかけることであると考えるのは正しいですか?LINQ to Objects
LINQがToList()
注文する前にコレクション全体をメモリ(列挙型?)にドラッグしてサーバー側(この場合はWebサーバー)に負担をかける2番目の方法ですか?この場合、L2Eが有利である状況をすぐに確認できます(たとえば、コレクションをメモリにプルする前にコレクションをフィルタリング/トリミングする)。
しかし、私が知っておくべき他の詳細/トレードオフ、または「方法2」が最初の方法よりも有利である可能性がある場合はありますか?
アップデート:
EntityFrameworkを使用していないとしましょう。これは、基盤となるリポジトリ/データソースがIQueryable<T>
正しく実装されている限り当てはまりますか?LINQ to Objects
そして、これらのステートメントの両方がメモリ内の操作をもたらさない場合はどうなりますか?