Là người dùng, bạn thường không cần phải quan tâm, nó thực sự là về người triển khai nguồn dữ liệu. Nếu các nhà cung cấp dữ liệu chỉ thực hiện IEnumerable, về cơ bản bạn đang làm LINQ để thực hiện các đối tượng, nghĩa là nó hoạt động trong bộ nhớ trên các bộ sưu tập. IQueryable cung cấp nguồn dữ liệu khả năng dịch cây biểu thức thành một biểu diễn thay thế để thực thi khi biểu thức được thực thi (thường là do liệt kê), đó là những gì mà Linq2Sql, Linq2Xml và Linq2Entities thực hiện.
Lần duy nhất tôi có thể thấy người dùng cuối quan tâm, là nếu họ muốn kiểm tra cây biểu thức sẽ được thực thi, vì IQueryable cho thấy Biểu thức. Sử dụng khác có thể là kiểm tra các nhà cung cấp. Nhưng cả hai kịch bản đó thực sự nên được dành riêng cho những người triển khai các nhà cung cấp truy vấn khác và muốn chuyển đổi biểu thức. Điểm quan trọng của LINQ là bạn không cần phải quan tâm đến việc triển khai thực hiện biểu thức được sử dụng.
Nguồn
2008-11-03 17:30:00