LINQ to Entities - OrderBy (). ToLisT () или ToList (). OrderBy ()
Я ищу подтверждение / уточнение с этими выражениями 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);
(Q1), Правильно ли я считаю, что первый методLINQ to Entities
где EF создает более конкретный оператор SQL для передачи, упорядочивая базу данных?
(Q2), Это второй методLINQ to Objects
где LINQ перетаскивает всю коллекцию в память (ToList()
перечисление?) перед заказом, таким образом, оставляя бремя на стороне сервера (веб-сервер в данном случае)?
Если это так, я могу быстро увидеть ситуации, в которых L2E был бы выгоден (например, фильтрация / обрезка коллекций перед вытягиванием их в память).
(Q3) Но есть ли какие-либо другие детали / компромиссы, о которых я должен знать, или времена, когда "способ 2 " может быть выгоднее первого метода?
ОБНОВИТЬ:
Позволять'скажем, мы не используем EntityFramework, это все еще верно, пока базовый репозиторий / источник данных реализуетIQueryable
право? И если это необа эти утверждения приводят кLINQ to Objects
операции в памяти?