Ho letto this le risposte alle domande che spiegano l'ordine del LINQ ai metodi degli oggetti fa la differenza. La mia domanda è perché?Perché l'ordine dei metodi LINQ per gli oggetti conta
Se scrivo una query LINQ to SQL, non importa l'ordine del LINQ metodi- projections
ad esempio:
session.Query<Person>().OrderBy(x => x.Id)
.Where(x => x.Name == "gdoron")
.ToList();
L'albero espressione verrà trasformato in uno SQL razionale come questo:
SELECT *
FROM Persons
WHERE Name = 'gdoron'
ORDER BY Id;
Quando Eseguo la query, la query SQL verrà creata in base all'albero dell'espressione, indipendentemente dall'ordine dei metodi.
Perché non funziona allo stesso modo con LINQ to objects
?
quando si enumera uno IQueryable tutte le proiezioni possono essere inserite in un ordine razionale (ad esempio Ordina per dopo Dove) esattamente come fa l'ottimizzatore di base dati.
Molto vicino, ha buone risposte: [fa-la-fine-di-LINQ funzioni-materia] (http://stackoverflow.com/questions/7499384/does-the-order-of -linq-functions-matter) – nawfal