Tôi đọc câu trả lời của câu hỏi this giải thích thứ tự của LINQ đối với các phương thức tạo nên sự khác biệt. Câu hỏi của tôi là tại sao?Tại sao thứ tự của LINQ đối tượng phương thức đếm là
Nếu tôi viết một LINQ to SQL truy vấn, nó không quan trọng thứ tự của các LINQ methods- projections
ví dụ:
session.Query<Person>().OrderBy(x => x.Id)
.Where(x => x.Name == "gdoron")
.ToList();
Cây biểu thức sẽ được chuyển thành một SQL hợp lý như thế này:
SELECT *
FROM Persons
WHERE Name = 'gdoron'
ORDER BY Id;
Khi tôi chạy truy vấn, truy vấn SQL sẽ được tạo theo cây biểu thức bất kể thứ tự của các phương thức lạ đến mức nào.
Tại sao nó không hoạt động giống với LINQ to objects
?
khi tôi liệt kê một IQueryable tất cả các phép chiếu có thể được đặt theo thứ tự hợp lý (ví dụ: Thứ tự theo sau ở đâu) giống như trình tối ưu hóa Cơ sở dữ liệu.
Rất gần, có câu trả lời tốt: [không-the-trật tự-of-LINQ chức năng vật chất] (http://stackoverflow.com/questions/7499384/does-the-order-of -linq-functions-matter) – nawfal