Sự khác biệt giữa IEnumerable và IQueryable là gì?

{{FormatNumbertoThousand(model.total_like)}} lượt thích
1.214 lượt xem
C#/.Net master
  • IEnumerable<> interface chỉ ra rằng một cái gì đó có thể được liệt kê qua toàn bộ - nói cách khác, bạn có thể thực hiện một vòng lặp foreach trên đó.
  • IQueryable<> interface chỉ ra rằng thứ gì đó có một số loại nhà cung cấp truy vấn hỗ trợ có khả năng xem các biểu thức được cấp cho nó, và dịch chúng thành một số loại truy vấn.

IQueryable có hai thuộc tính cụ thể mà IEnumerable không có — một thuộc tính trỏ đến trình cung cấp truy vấn (ví dụ: trình cung cấp LINQ to SQL) và một thuộc tính khác trỏ đến biểu thức truy vấn đại diện cho đối tượng IQueryable dưới dạng cây cú pháp trừu tượng có thể duyệt qua runtime mà nhà cung cấp truy vấn đó có thể hiểu được (đối với hầu hết các trường hợp, bạn không thể đưa một biểu thức LINQ to SQL tới nhà cung cấp LINQ to Entities mà không có exception nào được thảy ra).

{{login.error}}